[解決済み] C言語における変数宣言の配置
2022-05-28 19:43:01
質問
C 言語では、すべての変数は関数の最初に宣言されなければならないと長い間思っていました。C99 では、ルールは C++ と同じですが、C89/ANSI C の変数宣言の配置ルールはどうなっているのでしょうか。
で正常にコンパイルされた次のコードは
gcc -std=c89
と
gcc -ansi
:
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 10; i++) {
char c = (i % 95) + 32;
printf("%i: %c\n", i, c);
char *s;
s = "some string";
puts(s);
}
return 0;
}
の宣言は
c
と
s
は、C89/ANSI モードでエラーを引き起こすのでしょうか?
どのように解決するのですか?
GCCは、以下の宣言を許可しているので、正常にコンパイルできます。
s
の宣言をGNU拡張として許可しているからです。もし、これらの標準に厳密に従いたいのであれば、GCCに
-pedantic
フラグを渡さなければなりません。
の宣言は
c
の冒頭で
{ }
ブロックは関数である必要はありません。
関連
-
[解決済み] Code::Blocks アプリケーションをコンパイルできない
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] mallocで文字列を確保する
-
[解決済み] Linux Socket write() によるBad File Descriptor C
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] C関数から文字列を返す
-
[解決済み] C - Setデータ構造を実装するには?
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] C言語でランダムなint型を生成するには?
-
[解決済み】定義と宣言の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
解決済み] g++ コンパイルエラー: ')'トークンの前に一次式があることが予想される
-
警告:代入がキャストなしで整数からポインタを作成する場合の修正方法に関する警告
-
C++の配列コピー
-
initializer element is not constant "というエラーが表示されるのですが?
-
警告:符号付き整数式と符号なし整数式の比較 [-Wsign-compare]
-
[解決済み] flexible array member not at end of structエラーの原因は何ですか?
-
[解決済み] C言語の書式指定子 %ul と %lu の違いは何ですか?
-
[解決済み] C言語で%sを正しく使う - 超基本レベル
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] なぜsizeof(x++)はxをインクリメントしないのですか?