![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
はじめて質問させていただきます。
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 エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
Excelのエラーで困ってます。
-
デバッグ中のエラーのことで教...
-
バッチからsqlplusの接続エラー...
-
HEWを使用しているのですが、こ...
-
fortranでプログラムを実行する...
-
Visual Basic でサポートされて...
-
Handlesについて
-
ccコマンド時の0711-317エラー
-
C# 固定長ファイルの取得 FileGet
-
HANDLEの宣言でのエラー
-
error C3867 関数呼び出しには...
-
コンパイルできません。
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
-
EXEで実行すると発生するORA:06...
-
VBScriptによるExecuteExcel4Ma...
-
type
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
sys/time.hのインクルードがで...
-
コンパイルできません。
-
HEWを使用しているのですが、こ...
-
RightとLeft関数のライブ...
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
visual C++ でビルドの中止がで...
-
デバッグ中のエラーのことで教...
-
multiple definitionというエラー
-
ビルドが失敗してしまいます
-
LPCWSTRとchar
-
Handlesについて
-
BC30002: 型 'ListItem' が定義...
-
左側がクラス、構造体、共用体...
おすすめ情報