c識別子は文字、数字、アンダースコアで構成され、最初の文字は文字またはアンダースコアでなければなりません。異なるコンパイラが識別子に対して非常に異なる制限を持っています。GCC:より長い識別子をサポートし、文字セットの制限は緩んでいます。視覚C:識別子の長さは255文字に制限されており、特殊文字のサポートは限られています。他のコンパイラ(組み込みシステムなど):制限はより厳しく、サポートASCII文字セットのみがサポートされています。クロスプラットフォームコードを書くときは、識別子の命名仕様に従って、コンパイラの違いによって引き起こされる問題を避けるように注意してください。
率直に言って、C言語の識別子は、変数、関数、および構造に与える名前です。さまざまなコンパイラには、この名前に独自の気性があります。名前だけで完成したとは思わないでください。その中の落とし穴は、それの鍋を飲むのに十分です。
この記事では、さまざまなコンパイラによるC言語識別子の奇妙な制限を見てみましょう。それを読んだ後、不可解なコンピレーションエラーを回避し、髪の毛をいくつか失うために、より標準化された互換性のあるコードを書くことができます。
最初に基本について話しましょう。 C言語識別子は一般に文字、数字、アンダースコアで構成されていますが、最初のキャラクターは文字またはアンダースコアでなければなりません。これは基本的に、すべてのコンパイラが従う鉄のルールです。長さの制限に関しては、これは問題です。理論的には、標準Cは識別子の長さが「少なくとも」31文字であることのみを規定していますが、実際、多くのコンパイラはより長い識別子をサポートします。たとえば、GCCは何百ものキャラクターなどをサポートできますが、本当に長い名前を書きたい場合は、コードの読みやすさがあまりにも悪いので、お金を節約することをお勧めします。
次に、キーワードは、 int
、 float
for
の識別子として使用することはできませんwhile
それらを使用すると、間違いなくエラーが報告されます。症例の感度に関しては、Cは症例に敏感であり、 myVar
とmyvar
2つの完全に異なる識別子です。
それでは、ポイントに到達して、異なるコンパイラーの違いを見てみましょう。
GCC、これは旧世界であり、識別子の制限は比較的緩いです。より長い識別子をサポートし、文字セットの制限を緩めます。一般的に言えば、識別子の長さまたは文字セットに関するGCCの制限に遭遇することはめったにありません。ただし、一部の非標準識別子に警告が発生する場合があります。これにより、コードを再確認する必要があります。
MicrosoftのVisual C Compiler、この男はより「昔ながら」です。識別子の長さの制限は比較的厳格であり、一般的に言えば、255人以上の文字に問題があります。さらに、Unicode文字など、一部の特殊文字に対するサポートは限られています。したがって、VCコンパイラを使用してシンプルで明確な名前を付ける方が良いでしょう。
埋め込みシステムで一般的に使用されるコンパイラなど、識別子に厳格な制限があり、一部のコンパイラがASCII文字セットのみをサポートする場合もあります。したがって、クロスプラットフォームコードを作成する場合、識別子の命名仕様に注意を払い、シンプルで標準識別子を使用して、コンパイラの違いによりコンパイルまたは実行できないことを避ける必要があります。
最後に、私はいくつかのアドバイスをします:
- 簡潔で明確な識別子を使用してみてください。目立たない名前を付けないでください。
- 競合を防ぐために、キーワードに似た識別子を使用しないでください。
- クロスプラットフォームコードを作成するときは、異なるコンパイラの識別子の制限に特に注意し、標準の命名方法を使用してみてください。
- 優れたコードスタイルを開発することは、何よりも重要です。
コードを書くことは記事を書くようなものであり、明確で簡潔であることを覚えておいてください。これらの奇妙なコンパイラの制限がプログラミングのムードに影響を与えないでください。もっと練習してさらに要約すると、真のC言語マスターになります。
以上がさまざまなコンパイラのCユーザー識別子の制限は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

VScode中怎么配置C语言环境?下面本篇文章给大家介绍一下VScode配置C语言环境的方法(超详细),希望对大家有所帮助!

在C语言中,node是用于定义链表结点的名称,通常在数据结构中用作结点的类型名,语法为“struct Node{...};”;结构和类在定义出名称以后,直接用该名称就可以定义对象,C语言中还存在“Node * a”和“Node* &a”。

c语言将数字转换成字符串的方法:1、ascii码操作,在原数字的基础上加“0x30”,语法“数字+0x30”,会存储数字对应的字符ascii码;2、使用itoa(),可以把整型数转换成字符串,语法“itoa(number1,string,数字);”;3、使用sprintf(),可以能够根据指定的需求,格式化内容,存储至指针指向的字符串。

在c语言中,没有开根号运算符,开根号使用的是内置函数“sqrt()”,使用语法“sqrt(数值x)”;例如“sqrt(4)”,就是对4进行平方根运算,结果为2。sqrt()是c语言内置的开根号运算函数,其运算结果是函数变量的算术平方根;该函数既不能运算负数值,也不能输出虚数结果。

C语言数组初始化的三种方式:1、在定义时直接赋值,语法“数据类型 arrayName[index] = {值};”;2、利用for循环初始化,语法“for (int i=0;i<3;i++) {arr[i] = i;}”;3、使用memset()函数初始化,语法“memset(arr, 0, sizeof(int) * 3)”。

c语言合法标识符的要求是:1、标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成;2、第一个字符必须是字母或下划线,不能是数字;3、标识符中的大小写字母是有区别的,代表不同含义;4、标识符不能是关键字。

c语言编译后生成“.OBJ”的二进制文件(目标文件)。在C语言中,源程序(.c文件)经过编译程序编译之后,会生成一个后缀为“.OBJ”的二进制文件(称为目标文件);最后还要由称为“连接程序”(Link)的软件,把此“.OBJ”文件与c语言提供的各种库函数连接在一起,生成一个后缀“.EXE”的可执行文件。

c语言可以处理的文件类型是:文本文件和二进制文件。C语言所能够处理文件是按照存放形式分为文本文件和二进制文件:1、文本文件存储的是一个ASCII码,文件的内容可以直接进行输入输出;2、二进制文件直接将字符存储,不能将二进制文件的内容直接输出到屏幕上。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック



