我正在为微 Controller 编写C 软件,编译器是Microchip MCC18。
为了测试的目的,我写了一个非常简单的程序如下:
.c文件
#include "x.h"
char *now_clock;
.h文件
extern char *now_clock;
上面的代码出现语法错误,但我不知道哪里出了问题。有帮助吗?
最佳答案
显示的代码在整个编辑过程中似乎没有改变,在严格警告下,在 MacOS X 10.6.6 和 GCC 4.5.2 上为我正确编译——确实应该这样做。
$ cat x.h
extern char *now_clock;
$ cat x.c
#include "x.h"
char *now_clock;
$ gcc -O -std=c99 -Wall -Wextra -pedantic -c x.c
$
x.c 中的代码显示correct style - 它包括声明变量的 header 以交叉检查变量的定义。您也可以毫无问题地向 x.c 中的定义添加初始值设定项。
我的结论是您过度简化了您的示例并在此过程中丢失了问题。
关于c - 如何在 C 中用 extern 声明一个指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4914676/