C语言 在外部定义结构类型?
发布网友
发布时间:2024-04-02 10:24
我来回答
共1个回答
热心网友
时间:2024-07-21 04:03
这样做是不对的
应该这样:
文件str.h
struct STR
{
int a;
int b;
}; //注意这里不要声明变量
文件str.cpp
#include "str.h"
struct STR str; //在这里声明
文件main.cpp
#include <stdio.h>
#include "str.h"
extern struct STR str; //这样就可以引用外部变量了
int main(void)
{
str.a = 8;
return 0;
}
总结:
1、#include只引用头文件,不要引用程序文件
2、#include只声明类型,不要声明变量,因为多次引用会对同一变量多次分配内存,是错误的重复定义;
3、变量定义必须放在程序体文件,这样在其他程序体只要声明extern就可以引用了