Heim  >  Artikel  >  Backend-Entwicklung  >  Kann in einem C-Programm eine Kommentaranweisung nur nach einer Anweisung stehen?

Kann in einem C-Programm eine Kommentaranweisung nur nach einer Anweisung stehen?

青灯夜游
青灯夜游Original
2020-12-31 14:01:0425937Durchsuche

Fehler, in der C-Sprache hat der Kommentarteil keinen Einfluss auf die laufenden Ergebnisse des Programms. Er kann an einer beliebigen Stelle im Programm erscheinen. In der Sprache C gibt es zwei Arten von Kommentaren: Der eine ist ein Blockkommentar, der mit „/*“ beginnt und mit „*/“ endet; der andere ist ein einzeiliger Kommentar, der mit „//“ beginnt und mit einem Zeilenumbruchzeichen endet.

Kann in einem C-Programm eine Kommentaranweisung nur nach einer Anweisung stehen?

Die Betriebsumgebung dieses Artikels: Windows 10-System, C11, Thinkpad T480-Computer.

Verwandte Empfehlungen: C-Sprachvideo-Tutorial

Kommentare in C-Sprache

Beim Schreiben von C-Sprachquellcode sollten Sie mehr Kommentare verwenden, um das Verständnis des Codes zu erleichtern. Es gibt zwei Möglichkeiten zum Kommentieren in der C-Sprache:

  • Eine ist ein Blockkommentar, der mit /* beginnt und mit */ endet;

  • Die andere beginnt mit // und endet mit einem Zeilenumbruch. Der Schlusszeilenkommentar .

Sie können die Trennzeichen /* und */ verwenden, um Kommentare innerhalb einer Zeile oder Kommentare in mehreren Zeilen zu markieren. Im folgenden Funktionsprototyp bedeuten die Auslassungspunkte beispielsweise, dass die open()-Funktion einen dritten Parameter hat, der optional ist. Kommentare erläutern die Verwendung dieses optionalen Parameters:

int open( const char *name, int mode, … /* int permissions */ );

Sie können // verwenden, um eine ganze Zeile Kommentare einzufügen, oder den Quellcode in einem zweispaltigen Format schreiben, mit dem Programm in der linken Spalte und Kommentaren in der rechten Spalte :

const double pi = 3.1415926536;       // pi是—个常量

In C99 Im Standard wurden einzeilige Kommentare offiziell zur C-Sprache hinzugefügt, aber die meisten Compiler hatten bereits vor C99 damit begonnen, diese Verwendung zu unterstützen. Manchmal werden sie als Kommentare im „C++-Stil“ bezeichnet, tatsächlich sind sie jedoch von BCPL, dem Vorgänger von C, abgeleitet.

Die Position von Kommentaren

In der Sprache C hat der Kommentarteil keinen Einfluss auf die laufenden Ergebnisse des Programms. Er kann an einer beliebigen Stelle im Programm erscheinen.

Beispiel:

int/*....*/i;                                   //正确

char* s="abcdefgh   //hijklmn";                  //正确

in/*...*/ti;                                    //错误注释会被空格替换

//注意:             /*...*/不能嵌套 ,/*总是与离他最近的*/匹配

 y=x/*p           //       该语句由于没有找到*/ 会报错
 
//要实现以上功能  可以用y=x/(*p)或y=x/ *p代替

Kommentarspezifikationen

2-1: Generell muss der Anteil der wirksamen Kommentare im Quellprogramm mehr als 20 % betragen.

Hinweis: Das Prinzip von Kommentaren besteht darin, das Lesen und Verstehen des Programms zu erleichtern. Sie sollten nicht zu viele oder zu wenige Kommentare enthalten prägnant.

2-2: Der Dateikopf sollte kommentiert werden und die Kommentare müssen Folgendes enthalten: Copyright-Erklärung, Versionsnummer, Erstellungsdatum, Autor, Inhalt, Funktion, Änderungsprotokoll usw.

Beispiel: Die Header-Kommentare der folgenden Header-Datei sind relativ standardisiert, sie sind natürlich nicht auf dieses Format beschränkt, es wird jedoch empfohlen, die oben genannten Informationen aufzunehmen.

/*****************************************************************************
Copyright: 1988-1999, Huawei Tech. Co., Ltd.
File name: 文件名
Description: 用于详细说明此程序文件完成的主要功能,与其他模块或函数的接口,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系
Author: 作者
Version: 版本
Date: 完成日期
History: 修改历史记录列表, 每条修改记录应包括修改日期、修改者及修改内容简述。
*****************************************************************************/

2-3: Der Funktionsheader sollte kommentiert werden und Folgendes auflisten: Zweck/Funktion der Funktion, Eingabeparameter, Ausgabeparameter, Rückgabewert, Aufrufbeziehung (Funktion, Tabelle) usw.

Beispiel: Die folgenden Funktionskommentare sind relativ standardmäßig und nicht auf dieses Format beschränkt, es wird jedoch empfohlen, die oben genannten Informationen aufzunehmen.

/*************************************************
Function: // 函数名称
Description: // 函数功能、性能等的描述
Calls: // 被本函数调用的函数清单
Called By: // 调用本函数的函数清单
Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序)
Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序)
Input: // 输入参数说明,包括每个参数的作// 用、取值说明及参数间关系。
Output: // 对输出参数的说明。
Return: // 函数返回值的说明
Others: // 其它说明
********************************************/

2-4: Kommentieren Sie beim Schreiben von Code, ändern Sie den Code und ändern Sie gleichzeitig die entsprechenden Kommentare, um die Konsistenz von Kommentaren und Code sicherzustellen. Kommentare, die nicht mehr nützlich sind, werden gelöscht.

2-5: Der Inhalt der Anmerkung muss klar und prägnant sein und die Bedeutung muss korrekt sein, um Mehrdeutigkeiten in der Anmerkung zu vermeiden. Erläuterung: Falsche Kommentare sind nicht nur nicht hilfreich, sondern schädlich.

2-6: Kommentare zum Code sollten oberhalb oder rechts daneben (Kommentare zu einer einzelnen Anweisung) platziert werden , sie müssen darüber stehen. Der Code wird durch Leerzeilen getrennt.

Beispiel: Das folgende Beispiel entspricht nicht der Spezifikation.

Beispiel 1:

/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;

Beispiel 2:

repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;
/* get replicate sub system index and net indicator */

sollte wie folgt geschrieben werden

/* get replicate sub system index and net indicator */
repssn_ind = ssn_data[index].repssn_index;
repssn_ni = ssn_data[index].ni;

2-7: Für alle Variablen und Konstanten mit physikalischer Bedeutung, wenn ihre Namen nicht vollständig selbsterklärend sind, müssen sie wann mit Anmerkungen versehen werden Sie werden erklärt und erklären ihre physikalische Bedeutung. Kommentare für Variablen, Konstanten und Makros sollten neben oder rechts darüber platziert werden.

Beispiel:

/* active statistic task number */
#define MAX_ACT_TASK_NUMBER 1000
#define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */

2-8: Datenstrukturdeklaration (einschließlich Arrays, Strukturen, Klassen, Aufzählungen usw.). Wenn die Benennung nicht vollständig selbstkommentiert ist, muss sie mit Anmerkungen versehen werden. Kommentare zur Datenstruktur sollten daneben und nicht darunter platziert werden; Kommentare zu jedem Feld in der Struktur sollten rechts von diesem Feld platziert werden.

Beispiel: Die Aufzählungs-/Daten-/Union-Struktur kann wie folgt erklärt werden.

/* sccp interface with sccp user primitive message name */
enum SCCP_USER_PRIMITIVE
{
N_UNITDATA_IND, /* sccp notify sccp user unit data come */
N_NOTICE_IND, /* sccp notify user the No.7 network can not */
/* transmission this message */
N_UNITDATA_REQ, /* sccp user’s unit data transmission request */
};

2-9: Globale Variablen sollten detailliertere Kommentare haben, einschließlich Beschreibungen ihrer Funktionen, Wertebereiche, welche Funktionen oder Prozeduren auf sie zugreifen und Vorsichtsmaßnahmen beim Zugriff.

Beispiel:

/* The ErrorCode when SCCP translate */
/* Global Title failure, as follows */ // 变量作用、含义
/* 0 - SUCCESS 1 - GT Table error */
/* 2 - GT error Others - no use */ // 变量取值范围
/* only function SCCPTranslate() in */
/* this modual can modify it, and other */
/* module can visit it through call */
/* the function GetGTTransErrorCode() */ // 使用方法
BYTE g_GTTranErrorCode;

2-10: Kommentare werden genauso eingerückt wie der Inhalt, den sie beschreiben.

Beschreibung: Es kann das Programmlayout übersichtlicher gestalten und das Lesen und Verstehen von Kommentaren erleichtern. Beispiel: Das folgende Beispiel ist nicht sauber getippt, was das Lesen etwas erschwert.

void example_fun( void )
{
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
}

sollte in das folgende Layout geändert werden.

void example_fun( void )
{
/* code one comments */
CodeBlock One
/* code two comments */
CodeBlock Two
}

2-11: Vermeiden Sie das Einfügen von Kommentaren mitten in eine Code- oder Ausdruckszeile.

Hinweis: Sofern nicht erforderlich, sollten Kommentare nicht mitten in Code oder Ausdrücke eingefügt werden, da der Code sonst leicht unverständlicher wird.

2-12: Machen Sie den Code selbstkommentierend, indem Sie Funktionen oder Prozeduren, Variablen, Strukturen usw. richtig benennen und die Struktur des Codes rational organisieren.

Hinweis: Eine klare und genaue Benennung von Funktionen, Variablen usw. kann die Lesbarkeit des Codes verbessern und unnötige Kommentare reduzieren.

2-13: Kommentieren Sie auf Funktions- und Absichtsebene des Codes, um nützliche und zusätzliche Informationen bereitzustellen.

说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。

示例:如下注释意义不大。

/* if receive_flag is TRUE */
if (receive_flag)

而如下的注释则给出了额外有用的信息。

/* if mtp receive a message from links */
if (receive_flag)

2-14:在程序块的结束行右方加注释标记,以表明某程序块的结束。

说明:当代码段较长,特别是多重嵌套时,这样做可以使代码更清晰,更便于阅读。示例:参见如下例子。

if (…)
{
// program code
while (index < MAX_INDEX)
{
// program code
} /* end of while (index < MAX_INDEX) */ // 指明该条while 语句结束
} /* end of if (…)*/ // 指明是哪条if 语句结束

2-15:注释格式尽量统一,建议使用“/*…… */”。

2-16:注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。

说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。

更多编程相关知识,请访问:编程教学!!

Das obige ist der detaillierte Inhalt vonKann in einem C-Programm eine Kommentaranweisung nur nach einer Anweisung stehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn