我目前使用microsoft visual studio開發C程序。我在構建頭文件時遇到了這個問題,並且我以幾種方式進行了Google搜索,但它沒有修復它。如何解決C中的C2054
這是頭文件
#pragma
#ifndef DATA_H
#define DATA_H
namespace
{
//defailt court number
int _badminton_court, squash_court, tennis_court, futsal_court;
//default court label
char a = 'A', b = 'B', c = 'C', d = 'D';
}
#endif
修改
#pragma once
#ifndef DATA_H
#define DATA_H
//defailt court number
extern int _badminton_court, squash_court, tennis_court, futsal_court;
//default court label
extern char a = 'A', b = 'B', c = 'C', d = 'D';
#endif
之後和誤差將變得 錯誤(改變):
Error 10 error LNK2005: _badminton_court already defined in Booking.obj C:\Users\ASUS\Dropbox\Assignment\ckah\Assignment_C\Assignment_C\CourtAva.obj Assignment_C
Error 6 error LNK2005: _a already defined in Booking.obj C:\Users\ASUS\Dropbox\Assignment\ckah\Assignment_C\Assignment_C\CourtAva.obj Assignment_C
Error 14 error LNK1169: one or more multiply defined symbols found C:\Users\ASUS\Dropbox\Assignment\ckah\Assignment_C\Debug\Assignment_C.exe 1 1 Assignment_C
錯誤:
Error 1 error C2054: expected '(' to follow 'namespace' c:\users\asus\dropbox\assignment\ckah\assignment_c\assignment_c\data.h 6 1 Assignment_C
Error 4 error C2054: expected '(' to follow 'namespace' c:\users\asus\dropbox\assignment\ckah\assignment_c\assignment_c\data.h 6 1 Assignment_C
好吧,我設計它liek這個因爲我有幾個.c文件,只有方法,將訪問相同的變量。
'#pragma'什麼? –
你不需要給你的名字空間命名嗎? – bgamlath
C中沒有名稱空間。編譯器簡化了你正在編寫名爲「namespace」的方法,它正在尋找paren(s)。 –