Cの初心者なのですが、makeがうまくいきません。2種類のmakeがあって片方は通ったのですが、もう片方がsyntax errorとなります。調べた結果、初めの方はANSI規格でしたんですが、2つ目はK&Rの規格でした。この事が原因ならば、どうしたらいいでしょうか?
voidout(enum level num, char *str);
extern const char *constlevel[NUM];
の2行をヘッダーファイルに置いて、使用しています。
すると、この2行が、エラーと出るのですが,どうすればよいでしょうか?
すみませんが、教えていただけないでしょうか?
宜しくお願いします。
No.2ベストアンサー
- 回答日時:
> 列挙型タグ名のlevelと変数名のlevelは混じり合わない
これはK&Rでも同じのはずです。
多分次のコードで通ると思います。
void out();
extern char *level[NUM];
No.1
- 回答日時:
おそらく、名前空間の処理の違いだと思われます。
ANSI規格では、名前空間(識別子などの名前が混じらない範囲)が、
「gotoで使うラベル名」「構造体・共用体・列挙型タグ」
「構造体・共用体のメンバ名」「関数名や変数名などの一般識別子」
の4つに分かれます。
これによると問題のコードで、
列挙型タグ名のlevelと変数名のlevelは混じり合わない
(両方を使っても問題ない)はずなのですが、
K&R規格だと名前空間が一緒になり、エラーを起こしてしまったのでしょう。
対処法は…うーん…どっちかの名前を変えるのがいちばん単純なのですが、
それができれば悩んでないかなあ…。
しかし、名前空間が混じっている以上、変数levelを
使用すると、やっぱりコンパイルエラーになってしまうと思います。
どうしても変更できないなら、他のモジュールを中継にして
変数levelを他の変数にコピーし、
動的に(プログラムが動き出した後で)取得するとか。
もっともこれも変なやりかたですが…。
やっぱり、面倒でも、どちらかを書き換えた方がいいのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- PHP カラーミーショップのSmartyでの文字列抜き出し 2 2022/05/06 11:51
- iPhone(アイフォーン) ゲオモバイル中古 状態 A iPhone XRとSE2どっちがいい? バッテリーはどれ位違う? 1 2023/03/16 15:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
HEWを使用しているのですが、こ...
-
HANDLEの宣言でのエラー
-
WindowsからLinuxへの移植
-
Handlesについて
-
1つのDLLにソースを1500個ほど...
-
dos.hについて
-
VB2010でのSQL日付フォーマ...
-
C言語でpgm形式の画像を読み込...
-
どうしてもできない!!
-
sys/time.hのインクルードがで...
-
Excelのエラーで困ってます。
-
error C3867 関数呼び出しには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
HEWを使用しているのですが、こ...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
fortranでプログラムを実行する...
-
BC30002: 型 'ListItem' が定義...
-
VBAでファイルを開くプログラム...
-
sys/time.hのインクルードがで...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
LPCWSTRとchar
-
RightとLeft関数のライブ...
-
Handlesについて
-
multiple definitionというエラー
-
ACCESSのDate関数のエラー表示...
-
WindowsからLinuxへの移植
おすすめ情報