検索
ホームページバックエンド開発C#.Net チュートリアルC プログラムでは、コメント ステートメントはステートメントの後にのみ配置できますか?

エラーです。C 言語では、コメント部分はプログラムの実行結果には影響しません。プログラム内のどこにでも記述できます。 C言語のコメントには、「/*」で始まり「*/」で終わるブロックコメントと、「//」で始まり改行文字で終わる単行コメントの2種類があります。

C プログラムでは、コメント ステートメントはステートメントの後にのみ配置できますか?

#この記事の動作環境: Windows10 システム、c11、thinkpad t480 コンピューター。

関連する推奨事項:

C 言語ビデオ チュートリアル

C 言語でのコメント

C 言語ソースを作成するときコードを理解するために、より多くのコメントを使用する必要があります。 C 言語には 2 つのコメント メソッドがあります:

  • # 1 つは /* で始まり */ で終わるブロック コメントです;

  • もう 1 つは /* で始まり */ で終わるブロック コメントです。 // で始まり改行文字で終わる 1 行のコメントです。

/* および */ 区切り文字を使用して、1 行内のコメントをマークしたり、複数行のコメントをマークしたりできます。たとえば、次の関数プロトタイプの省略記号は、open() 関数にオプションの 3 番目のパラメーターがあることを意味します。コメントは、このオプションのパラメーターの使用法を説明しています:

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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
c#.netの継続的な関連性:現在の使用法を見るc#.netの継続的な関連性:現在の使用法を見るApr 16, 2025 am 12:07 AM

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

Webからデスクトップまで:C#.NETの汎用性Webからデスクトップまで:C#.NETの汎用性Apr 15, 2025 am 12:07 AM

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

c#.net and the Future:新しいテクノロジーへの適応c#.net and the Future:新しいテクノロジーへの適応Apr 14, 2025 am 12:06 AM

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netはあなたにぴったりですか?その適用性の評価c#.netはあなたにぴったりですか?その適用性の評価Apr 13, 2025 am 12:03 AM

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NET内のC#コード:プログラミングプロセスの調査.NET内のC#コード:プログラミングプロセスの調査Apr 12, 2025 am 12:02 AM

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#.NET:コアの概念とプログラミングの基礎を探るC#.NET:コアの概念とプログラミングの基礎を探るApr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテストテストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテストApr 09, 2025 am 12:04 AM

C#.NETアプリケーションのテスト戦略には、ユニットテスト、統合テスト、エンドツーエンドテストが含まれます。 1.単位テストにより、コードの最小ユニットがMSTEST、ヌニット、またはXUNITフレームワークを使用して独立して動作することを保証します。 2。統合テストでは、一般的に使用されるシミュレートされたデータと外部サービスを組み合わせた複数のユニットの機能を検証します。 3.エンドツーエンドのテストでは、ユーザーの完全な操作プロセスをシミュレートし、通常、セレンは自動テストに使用されます。

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース高度なC#.NETチュートリアル:次のシニア開発者インタビューをエースApr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境