Lines Matching +full:se +full:- +full:pos
1 .. include:: ../disclaimer-ita.rst
3 :Original: :ref:`Documentation/process/coding-style.rst <codingstyle>`
24 ---------------
29 pi-greco a 3.
34 indentazione se questi sono larghi.
38 caratteri. La risposta a questa affermazione è che se vi servono più di 3
51 .. code-block:: c
73 .. code-block:: c
80 .. code-block:: c
87 .. code-block:: c
107 -----------------------------------
130 ---------------------------------------------
140 .. code-block:: c
149 .. code-block:: c
165 .. code-block:: c
179 espressione, in pratica ``while`` nell'espressione do-while, oppure ``else``
180 nell'espressione if-else, come questo:
182 .. code-block:: c
185 body of do-loop
190 .. code-block:: c
210 .. code-block:: c
217 .. code-block:: none
224 Questo non vale nel caso in cui solo un ramo dell'espressione if-else
228 .. code-block:: c
237 Inoltre, usate le graffe se un ciclo contiene più di una semplice istruzione:
239 .. code-block:: c
253 funzioni (e in Linux, solitamente, sono usate con le parentesi, anche se il
263 .. code-block:: c
271 .. code-block:: c
280 .. code-block:: c
290 = + - < > * / % | & ^ <= >= == != ? :
294 & * + - ~ ! sizeof typeof alignof __attribute__ defined
298 ++ --
302 ++ --
305 ``->``.
316 e può opzionalmente rimuoverli per conto vostro; tuttavia, se state applicando
321 -----------------
324 contrario dei programmatori Modula-2 o Pascal, i programmatori C non usano
333 Le variabili GLOBALI (da usare solo se vi servono **davvero**) devono avere
334 dei nomi descrittivi, così come le funzioni globali. Se avete una funzione
339 ungherese) è stupido - il compilatore conosce comunque il tipo e
342 Le variabili LOCALI dovrebbero avere nomi corti, e significativi. Se avete
348 Se avete paura di fare casino coi nomi delle vostre variabili locali, allora
353 --------------------------------
358 .. code-block:: c
363 Se, invece, dicesse:
365 .. code-block:: c
381 Gli oggetti opachi e le ``funzioni accessorie`` non sono, di per se,
388 u8/u16/u32 sono typedef perfettamente accettabili, anche se ricadono
393 Ancora - dev'esserci una **ragione** per farlo. Se qualcosa è
398 ma se ci sono chiare circostanze in cui potrebbe essere ``unsigned int``
412 con segno, identici ai tipi standard, sono permessi- tuttavia, non sono
430 -----------
437 complessità e al livello di indentazione di quella funzione. Quindi, se avete
439 lunga (ma semplice) sequenza di caso-istruzione, dove avete molte piccole cose
442 Comunque, se avete una funzione complessa e sospettate che uno studente
446 compilatore di renderle inline se credete che sia necessario per le
451 dovrebbero eccedere le 5-10, oppure state sbagliando qualcosa. Ripensate la
457 Nei file sorgenti, separate le funzioni con una riga vuota. Se la funzione è
461 .. code-block:: c
480 …nzione mantenete `l'ordine degli elementi <https://lore.kernel.org/mm-commits/CAHk-=wiOCLRny5aifWN…
489 - classe d'archiviazione (in questo caso ``static __always_inline``. Da notare
492 - attributi della classe di archiviazione (in questo caso ``__init``, in altre
494 - il tipo di ritorno (in questo caso, ``void *``)
495 - attributi per il valore di ritorno (in questo caso, ``__must_check``)
496 - il nome della funzione (in questo caso, ``action``)
497 - i parametri della funzione(in questo caso,
500 - attributi dei parametri (in questo caso, ``__printf(4, 5)``)
501 - attributi per il comportamento della funzione (in questo caso, ``__malloc_``)
516 ------------------------------------------
522 e vanno eseguite alcune procedure di pulizia in comune. Se non è necessario
527 se la goto libera (free) un ``buffer``. Evitate l'uso di nomi GW-BASIC come
528 ``err1:`` ed ``err2:``, potreste doverli riordinare se aggiungete o rimuovete
533 - i salti incondizionati sono più facili da capire e seguire
534 - l'annidamento si riduce
535 - si evita di dimenticare, per errore, di aggiornare un singolo punto d'uscita
536 - aiuta il compilatore ad ottimizzare il codice ridondante ;)
538 .. code-block:: c
547 return -ENOMEM;
565 .. code-block:: c
568 kfree(foo->bar);
576 .. code-block:: c
579 kfree(foo->bar);
589 -----------
597 Inoltre, cercate di evitare i commenti nel corpo della funzione: se la
606 formato kernel-doc. Per maggiori dettagli, leggete i file in
607 :ref::ref:`Documentation/translations/it_IT/doc-guide/ <it_doc_guide>` e in
608 ``script/kernel-doc``.
610 Lo stile preferito per i commenti più lunghi (multi-riga) è:
612 .. code-block:: c
615 * This is the preferred style for multi-line
620 * with beginning and ending almost-blank lines.
624 più lunghi (multi-riga) è leggermente diverso.
626 .. code-block:: c
632 * but there is no initial almost-blank line.
642 ---------------------------
648 premere tasti a caso - un numero infinito di scimmie che scrivono in
655 .. code-block:: none
657 (defun c-lineup-arglist-tabs-only (ignored)
659 (let* ((anchor (c-langelem-pos c-syntactic-element))
660 (column (c-langelem-2nd-pos c-syntactic-element))
661 (offset (- (1+ column) anchor))
662 (steps (floor offset c-basic-offset)))
664 c-basic-offset)))
666 (dir-locals-set-class-variables
667 'linux-kernel
668 '((c-mode . (
669 (c-basic-offset . 8)
670 (c-label-minimum-indentation . 0)
671 (c-offsets-alist . (
672 (arglist-close . c-lineup-arglist-tabs-only)
673 (arglist-cont-nonempty .
674 (c-lineup-gcc-asm-reg c-lineup-arglist-tabs-only))
675 (arglist-intro . +)
676 (brace-list-intro . +)
677 (c . c-lineup-C-comments)
678 (case-label . 0)
679 (comment-intro . c-lineup-comment)
680 (cpp-define-intro . +)
681 (cpp-macro . -1000)
682 (cpp-macro-cont . +)
683 (defun-block-intro . +)
684 (else-clause . 0)
685 (func-decl-cont . +)
687 (inher-cont . c-lineup-multi-inher)
688 (knr-argdecl-intro . 0)
689 (label . -1000)
691 (statement-block-intro . +)
692 (statement-case-intro . +)
693 (statement-cont . +)
696 (indent-tabs-mode . t)
697 (show-trailing-whitespace . t)
700 (dir-locals-set-directory-class
701 (expand-file-name "~/src/linux-trees")
702 'linux-kernel)
705 si trovano nella cartella ``~/src/linux-trees``.
707 Ma anche se doveste fallire nell'ottenere una formattazione sensata in emacs
715 ``-kr -i8`` (che significa ``K&R, 8 caratteri di indentazione``), o utilizzate
722 Da notare che potete utilizzare anche ``clang-format`` per aiutarvi con queste
729 :ref:`Documentation/translations/it_IT/process/clang-format.rst <it_clangformat>`.
733 ----------------------------------
746 logging of avc messages output). Does not do system-call
759 il documento Documentation/kbuild/kconfig-language.rst
763 ------------------
774 in parallelo - e non doversi preoccupare di una struttura dati che
789 Un esempio di questo tipo di conteggio dei riferimenti multi-livello può
794 Ricordatevi: se un altro thread può trovare la vostra struttura dati, e non
798 ---------------------------
803 .. code-block:: c
816 blocco do - while:
818 .. code-block:: c
830 .. code-block:: c
835 return -EBUGGERED; \
844 .. code-block:: c
851 3) le macro con argomenti che sono utilizzati come l-values; questo potrebbe
852 ritorcervisi contro se qualcuno, per esempio, trasforma FOO in una funzione
859 .. code-block:: c
867 .. code-block:: c
876 ret è un nome comune per una variabile locale - __foo_ret difficilmente
884 --------------------------------------
912 -DDEBUG nei corrispettivi Makefile, e in altri casi aggiungono #define DEBUG
918 ---------------------
923 :ref:`Documentation/translations/it_IT/core-api/memory-allocation.rst <it_memory_allocation>`
927 .. code-block:: c
941 .. code-block:: c
947 .. code-block:: c
952 d'assegnamento n * sizeof(...), se accade ritorneranno NULL.
960 -------------------
982 -------------------------------------------
985 è quel valore che indica se una funzione ha completato con successo o meno.
987 (-Exxx = fallimento, 0 = successo) oppure un booleano di successo
988 (0 = fallimento, non-zero = successo).
991 i bachi più insidiosi. Se il linguaggio C includesse una forte distinzione
996 Se il nome di una funzione è un'azione o un comando imperativo,
997 essa dovrebbe ritornare un codice di errore intero. Se il nome
1002 in caso di successo o -EBUSY in caso di fallimento. Allo stesso modo,
1004 1 se trova il dispositivo corrispondente con successo, altrimenti 0.
1019 -----------------
1035 Non usate bool se per voi sono importanti l'ordine delle righe di cache o
1040 Se una struttura ha molti valori true/false, considerate l'idea di raggrupparli
1046 un'alternativa molto più leggibile se si hanno valori costanti per true/false.
1052 ---------------------------------------
1056 Per esempio, se dovete calcolare la lunghezza di un vettore, sfruttate la
1059 .. code-block:: c
1063 Analogamente, se dovete calcolare la dimensione di un qualche campo di una
1066 .. code-block:: c
1068 #define sizeof_field(t, f) (sizeof(((t*)0)->f))
1070 Ci sono anche le macro min() e max() che, se vi serve, effettuano un controllo
1076 -----------------------------------------------------------
1082 .. code-block:: c
1084 -*- mode: c -*-
1088 .. code-block:: c
1092 compile-command: "gcc -DMAGIC_DEBUG_FLAG foo.c"
1098 .. code-block:: c
1110 -------------------
1136 .. code-block:: c
1143 ---------------------------------
1158 Se avete una variabile o funzione che potrebbe non essere usata in alcune
1162 se una variabile o funzione è *sempre* inutilizzata, rimuovetela).
1168 .. code-block:: c
1174 Il compilatore valuterà la condizione come costante (constant-fold), e quindi
1175 includerà o escluderà il blocco di codice come se fosse in un #ifdef, quindi
1179 dovete comunque utilizzare #ifdef se il codice nel blocco condizionale esiste
1186 .. code-block:: c
1193 ------------------------
1198 ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).
1202 Addison-Wesley, Inc., 1999.
1203 ISBN 0-201-61586-X.
1205 Manuali GNU - nei casi in cui sono compatibili con K&R e questo documento -
1210 URL: https://www.open-std.org/JTC1/SC22/WG14/