我对外部结构感到困惑。我必须在一个文件中定义一个结构的全局实例,而不是定义该结构(作为一个 RAM 变量,我不知道它到底是什么)。
下面是一个 GCC 可以编译并且运行正确的示例,而 Code Composer Studio 给出了编译时错误。
我想了解问题出在哪里,GCC 如何编译,以及我应该在哪里/如何使用 extern 声明。
任何评论将不胜感激。
人.h
#ifndef PERSON_H
#define PERSON_H
struct person {
int age;
};
typedef struct person PERSON;
void modifyPerson();
#endif // PERSON_H
人拉姆.h
#ifndef PERSONRAM_H
#define PERSONRAM_H
#include "person.h"
PERSON p1;
#endif // PERSONRAM_H
修改人.c
#include "person.h"
#include "personRam.h"
void modifyPerson() {
p1.age = 10;
}
主程序
#include <stdio.h>
#include "person.h"
#include "personRam.h"
int main() {
modifyPerson();
printf("%d", p1.age);
return 0;
}