
はじめて質問させていただきます。
Visual C++ 2008 Express Editionを使ってC言語のソースコードを記述しています。
(OSはWindows XPを使用しています。)
ビルドを行った際に以下のエラーが発生していて、先に進めません。
色々と調べてみたのですが、解決方法がわからず質問させていただいた次第です。
解決方法についてご存知の方がいらっしゃいましたら、回答いただけると嬉しいです。
■エラー内容
------ ビルド開始: プロジェクト: Sample, 構成: Debug Win32 ------
コンパイルしています...
Sample.c
d:\sample\sample\Sample.c(4) : error C2061: 構文エラー : 識別子 'GetInfo'
d:\sample\sample\Sample.c(4) : error C2059: 構文エラー : ';'
d:\sample\sample\Sample.c(4) : error C2059: 構文エラー : ')'
ビルドログは "file://d:\Sample\Sample\Debug\BuildLog.htm" に保存されました。
Sample - エラー 3、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
■Sample.c
#include "stdafx.h"
Info GetInfo(){
return 0;
}
int main(){
return 0;
}
■stdafx.h
#pragma once
#include "def.h"
#include <stdio.h>
#include <tchar.h>
Info GetInfo();
■def.h
typedef struct Info{
int a;
int b;
int c;
} Info;
No.4ベストアンサー
- 回答日時:
掲示されているソースでビルドしましたが…
>\my documents\visual studio 2008\projects\qa6421111\qa6421111\sample.c(4) : error C2440: 'return' : 'int' から 'Info' に変換できません。
となっただけ(当然の結果)…ですね。
# sample.cは#includeから始まりますので、4行目はreturnのある行です。
# 質問者さんのソースで先頭に空行があるのでしょうけど。
ちなみに、プロジェクトは「Win32 コンソールアプリケーション」で「空のプロジェクト」としています。
ご回答ありがとうございます。
記載いただいておりましたように、「空のプロジェクト」から作成して同様のソースを記述すると、「error C2440:'return' : 'int' から 'Info' に変換できません」となりました。
Sample.cのInfo GetInfo()部分を以下のように修正しましたところ、正常にビルドできるようになりました。
------
Info GetInfo(){
struct Info taginfo = {1,2,3};
return taginfo;
}
------
「空のプロジェクト」として作成する以外は、プロパティの設定等をまったく同じにしたのですが、正常にビルドできています。
ちなみに、知識不足で大変申し訳ないのですが、「空のプロジェクト」として作成する場合としない場合でビルド結果が変わるのはなぜなのでしょうか?
#参考になりそうなURLなどがありましたら、URLのご提示でも構いませんので、ご教示いただけると幸いです。
No.3
- 回答日時:
#1です …
勇み足だったようですね
今開発環境が手元にないので ちょと調べることができません
夜中になれば帰宅できるのでそれから調べてみますね ^^;
typedefでこけるなら ヘッダーでもこけそうですね ・・・
No.2
- 回答日時:
>構造体のタグ名とtypedefでの定義が同じであるためにコンパイラがどちらか判断できないでいるのだと思います
両者の名前空間は別々なので、同じ名前を付けてもコンパイラーは混乱しないはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- UNIX・Linux bashの変数でブランクがあるかチェックする方法教えて下さい。 3 2023/04/06 16:09
- Windows 10 bash の -z オプションがうまく動作しない原因を教えて下さい。 4 2023/03/22 18:04
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- Excel(エクセル) 日本情報処理表計算について。 4 2022/08/28 21:46
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- UNIX・Linux bashでシングルクォート内の変数の組み込み方教えてください。 2 2023/02/14 19:30
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
ACCESSのDate関数のエラー表示...
-
HANDLEの宣言でのエラー
-
自動でステップオーバーされる...
-
fortranでプログラムを実行する...
-
VB2008で定数に色の設定をした...
-
インラインの関数について
-
Arduinoに関する質問
-
キーの自動入力
-
C++でsprintfって使用できませ...
-
DLLファイルの逆コンパイラにつ...
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
eclipseでデバックするとエラー...
-
error LNK2001: 外部シンボル "...
-
<math.h>ヘッダを入力している...
-
ソフトの開発言語を調べる方法
-
リリースモードとデバッグモー...
-
FindFirstFileについて教えてく...
-
VC++6.0をコマンドプロンプ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
ビルド失敗 指定されたファイ...
-
fortranでプログラムを実行する...
-
visual C++ でビルドの中止がで...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
Visual Studioのstrcpy_sについて
-
DLL関数を使ったプログラム
-
キーの自動入力
-
RightとLeft関数のライブ...
-
BC30002: 型 'ListItem' が定義...
-
LPCWSTRとchar
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
sys/time.hのインクルードがで...
おすすめ情報