Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C语言中解决C2054_C - Fatal编程技术网

如何在C语言中解决C2054

如何在C语言中解决C2054,c,C,我目前正在使用MicrosoftVisualStudio开发一个C程序。我在构建头文件时遇到了这个问题,我用谷歌搜索了好几种方法,但都没有解决 这是头文件 #pragma #ifndef DATA_H #define DATA_H namespace { //defailt court number int _b

我目前正在使用MicrosoftVisualStudio开发一个C程序。我在构建头文件时遇到了这个问题,我用谷歌搜索了好几种方法,但都没有解决

这是头文件

            #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   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

好吧,我这样设计它,因为我只有很少的.c文件可以访问同一个变量中,C++中没有<代码>命名空间< /代码> s。

也许你想写一个C++程序?< /p>嗯,由于某种限制,我必须在C中完成它,无论如何要像修改命名空间或其他方法一样解决问题。@user694733我尝试删除它,它说variab已经在我的另一个.c文件中定义了。@user3122881然后只在一个地方定义它们,就像它应该的那样。除非-如果你需要它们彼此分开,那么让它们

static
@user3122881在你的问题注释中看到我的旁注。你不需要给你的命名空间命名吗?C中没有命名空间。你的编译器认为你正在写一个名为“namespace”的方法,它正在寻找paren(s).Sidenote:您应该只将变量声明放入头文件(如
extern int networking\u court;
)。定义应该放在.c文件中(比如
int networks\u court=2;
)。不要声明,更不用说初始化头文件中的变量了。。。别这样。这些错误是不言自明的:你仍然有
名称空间
'd代码在某处,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