我是一个新手,试图理解C中的程序.
在程序中,有一个头文件typedef.h,它声明typedef struct {int i; char b;} rdi;
在程序中,有一个头文件typedef.h,它声明typedef struct {int i; char b;} rdi;
然后有3个文件夹,每个文件夹有几个程序执行一个特定的任务,每个文件夹有一个头文件.在每个3个文件夹的头文件中
#include typfedef.h
然后宣布
extern rdi *rdi_x;
在所有3个文件夹中它做到了.但是我在程序定义中没有看到它:
rdi rdi_x;
我的问题是是否需要定义rdi rdi_x;在程序中.
正如我从c教科书中了解到的,程序中某处需要定义rdi rdi_x;或者我的理解不好.
解决方法
As I understand from c text book,somewhere in the program it needs to define
rdi rdi_x;
or my understanding is not good.
只有在使用它时,才需要定义rdi_x.只需声明变量就不需要定义它.
拿一个.c文件的简单情况:
程序无法构建:
extern int i; extern int j; extern int k; int main() { k = 10; }
该程序将无法构建,因为k被使用.如果我们提供只有k的定义,它将构建很好.
程序成功建立:
extern int i; extern int j; extern int k; int main() { k = 10; } int k;
在这里,我和j被声明但不被使用.因此,它们不需要定义.