오류, C 언어에서 주석 부분은 프로그램 실행 결과에 영향을 미치지 않습니다. 프로그램의 어느 곳에나 나타날 수 있습니다. C 언어에는 두 가지 유형의 주석이 있습니다. 하나는 "/*"로 시작하고 "*/"로 끝나는 블록 주석이고, 다른 하나는 "//"로 시작하고 개행 문자로 끝나는 한 줄 주석입니다.
이 기사의 운영 환경: windows10 시스템, c11, thinkpad t480 컴퓨터.
관련 권장 사항: C 언어 비디오 튜토리얼
C 언어의 주석
C 언어 소스 코드를 작성할 때 코드 이해를 돕기 위해 더 많은 주석을 사용해야 합니다. C 언어에는 두 가지 주석 방법이 있습니다.
하나는 /*로 시작하고 */로 끝나는 블록 주석입니다.
다른 하나는 //로 시작하고 개행 문자로 끝나는 것입니다. .
/* 및 */ 구분 기호를 사용하여 한 줄 또는 여러 줄의 댓글 내에서 댓글을 표시할 수 있습니다. 예를 들어, 다음 함수 프로토타입에서 줄임표는 open() 함수에 선택적인 세 번째 매개변수가 있음을 의미합니다. 주석은 이 선택적 매개변수의 사용을 설명합니다.
int open( const char *name, int mode, … /* int permissions */ );
//를 사용하여 전체 주석 줄을 삽입하거나 왼쪽 열에 프로그램, 오른쪽 열에 주석을 사용하여 2열 형식으로 소스 코드를 작성할 수 있습니다. :
const double pi = 3.1415926536; // pi是—个常量
C99 표준에서는 C 언어에 공식적으로 한 줄 주석이 추가되었지만 대부분의 컴파일러는 C99 이전부터 이 사용법을 지원하기 시작했습니다. 때로는 "C++ 스타일" 주석이라고도 하지만 실제로는 C의 전신인 BCPL에서 파생되었습니다.
댓글 위치
C 언어에서 댓글 부분은 프로그램 실행 결과에 아무런 영향을 미치지 않습니다. 프로그램의 어느 곳에나 나타날 수 있습니다.
예:
int/*....*/i; //正确 char* s="abcdefgh //hijklmn"; //正确 in/*...*/ti; //错误注释会被空格替换 //注意: /*...*/不能嵌套 ,/*总是与离他最近的*/匹配 y=x/*p // 该语句由于没有找到*/ 会报错 //要实现以上功能 可以用y=x/(*p)或y=x/ *p代替
댓글 사양
2-1: 일반적으로 소스 프로그램에서 효과적인 댓글의 양은 20% 이상이어야 합니다.
참고: 댓글은 프로그램의 읽기와 이해를 돕기 위한 것입니다. 댓글은 추가해야 할 곳에 추가됩니다. 댓글 언어는 정확하고 이해하기 쉬워야 합니다. 간결한.
2-2: 파일 헤더에 주석을 달아야 하며, 주석에는 저작권, 버전 번호, 생성 날짜, 작성자, 내용, 기능, 수정 로그 등이 나열되어야 합니다.
예: 아래 헤더 파일의 헤더 코멘트는 비교적 표준적입니다. 물론 이 형식에 국한되는 것은 아니지만 위의 정보를 포함하는 것이 좋습니다.
/***************************************************************************** Copyright: 1988-1999, Huawei Tech. Co., Ltd. File name: 文件名 Description: 用于详细说明此程序文件完成的主要功能,与其他模块或函数的接口,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系 Author: 作者 Version: 版本 Date: 完成日期 History: 修改历史记录列表, 每条修改记录应包括修改日期、修改者及修改内容简述。 *****************************************************************************/
2-3: 함수 헤더에 주석을 달고 함수의 목적/함수, 입력 매개변수, 출력 매개변수, 반환 값, 호출 관계(함수, 테이블) 등을 나열해야 합니다.
예: 다음 함수 설명은 비교적 표준적입니다. 물론 이 형식에 국한되지는 않지만 위의 정보를 포함하는 것이 좋습니다.
/************************************************* Function: // 函数名称 Description: // 函数功能、性能等的描述 Calls: // 被本函数调用的函数清单 Called By: // 调用本函数的函数清单 Table Accessed: // 被访问的表(此项仅对于牵扯到数据库操作的程序) Table Updated: // 被修改的表(此项仅对于牵扯到数据库操作的程序) Input: // 输入参数说明,包括每个参数的作// 用、取值说明及参数间关系。 Output: // 对输出参数的说明。 Return: // 函数返回值的说明 Others: // 其它说明 ********************************************/
2-4: 코드를 작성하는 동안 주석을 달고, 코드를 수정하고, 해당 주석을 동시에 수정하여 주석과 코드의 일관성을 보장합니다. 더 이상 유용하지 않은 댓글은 삭제됩니다.
2-5: 주석의 내용은 명확하고 간결해야 하며, 주석의 모호성을 방지하기 위해 의미가 정확해야 합니다. 설명: 잘못된 의견은 도움이 되지 않을 뿐만 아니라 해롭습니다.
2-6: 주석은 설명하는 코드와 유사해야 합니다. 코드에 대한 주석은 위에 있거나 오른쪽(단일 명령문에 대한 주석)에 배치되어야 합니다. , 그 위에 있어야 합니다. 코드는 빈 줄로 구분됩니다.
예: 다음 예는 사양을 준수하지 않습니다.
예제 1:
/* get replicate sub system index and net indicator */ repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni;
예 2:
repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni; /* get replicate sub system index and net indicator */
는 다음과 같이 작성해야 합니다.
/* get replicate sub system index and net indicator */ repssn_ind = ssn_data[index].repssn_index; repssn_ni = ssn_data[index].ni;
2-7: 물리적 의미가 있는 모든 변수 및 상수에 대해 이름이 완전히 설명되지 않는 경우 다음과 같은 경우 주석을 달아야 합니다. 선언되어 있으며 물리적 의미를 설명합니다. 변수, 상수, 매크로에 대한 설명은 주석 옆이나 오른쪽 위에 배치해야 합니다.
예:
/* active statistic task number */ #define MAX_ACT_TASK_NUMBER 1000 #define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */
2-8: 데이터 구조 선언(배열, 구조, 클래스, 열거형 등 포함), 이름 지정이 완전히 자체 주석 처리되지 않은 경우 주석을 달아야 합니다. 데이터 구조에 대한 설명은 그 아래가 아닌 바로 옆에 배치되어야 합니다. 구조의 각 필드에 대한 설명은 이 필드의 오른쪽에 배치되어야 합니다.
예: 열거형/데이터/공용체 구조는 다음과 같이 설명할 수 있습니다.
/* 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: 전역 변수에는 해당 함수에 대한 설명, 값 범위, 액세스하는 함수 또는 프로시저, 액세스 시 주의 사항을 포함하여 더 자세한 설명이 있어야 합니다.
예:
/* 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: 댓글은 설명하는 내용과 동일하게 들여쓰기됩니다.
설명: 프로그램 레이아웃을 깔끔하게 만들고 댓글을 쉽게 읽고 이해할 수 있습니다. 예: 다음 예는 깔끔하게 입력되지 않아 읽기가 약간 불편합니다.
void example_fun( void ) { /* code one comments */ CodeBlock One /* code two comments */ CodeBlock Two }
는 다음 레이아웃으로 변경되어야 합니다.
void example_fun( void ) { /* code one comments */ CodeBlock One /* code two comments */ CodeBlock Two }
2-11: 코드나 표현식 줄 중간에 주석을 삽입하지 마세요.
참고: 필요한 경우가 아니면 코드나 표현식 중간에 주석을 삽입하면 안 됩니다. 그렇지 않으면 코드를 쉽게 이해할 수 없게 됩니다.
2-12: 함수나 프로시저, 변수, 구조 등의 이름을 올바르게 지정하고 코드 구조를 합리적으로 구성하여 자체 주석 처리된 코드를 만듭니다.
참고: 함수, 변수 등의 이름을 명확하고 정확하게 지정하면 코드 가독성을 높이고 불필요한 주석을 줄일 수 있습니다.
2-13: 코드의 기능 및 의도 수준에서 주석을 달아 유용하고 추가 정보를 제공합니다.
说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。
示例:如下注释意义不大。
/* 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:注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。
说明:注释语言不统一,影响程序易读性和外观排版,出于对维护人员的考虑,建议使用中文。
更多编程相关知识,请访问:编程教学!!
위 내용은 C 프로그램에서 주석문은 명령문 뒤에만 올 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!