![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
一些基本系统数据类型可以在多个头文件中定义,怎么理解
以下内容来自《Unix环境高级编程》第二章末尾:2.7节中提到一些基本系统数据类型可以在多个头文件中定义。例如,size_t就在6个不同的头文件中都有定义。由于一个程序可...
以下内容来自《Unix环境高级编程》第二章末尾:
2.7节中提到一些基本系统数据类型可以在多个头文件中定义。例如, size_t 就在6个不同的头文件中都有定义。由于一个程序可能包含这6个不同的头文件,但是ANSI C不允许对同一个名字进行多次类型定义,如何处理这个矛盾呢?
我想知道怎么处理
如果是用#ifndef,具体的头文件中应该怎么写
谢谢先! 展开
2.7节中提到一些基本系统数据类型可以在多个头文件中定义。例如, size_t 就在6个不同的头文件中都有定义。由于一个程序可能包含这6个不同的头文件,但是ANSI C不允许对同一个名字进行多次类型定义,如何处理这个矛盾呢?
我想知道怎么处理
如果是用#ifndef,具体的头文件中应该怎么写
谢谢先! 展开
1个回答
展开全部
前面的我不知道,用条件编译可以这样
#ifndef SYSTEM_TYPE
#define SYSTEM_TYPE
typedef unsigned int size_t;
#endif
就是说假如没有宏定义了SYSTEM_TYPE,则定义这个宏定义,然后定义类型
如果定义了,这段代码不编译。就是说每个头文件都有一个公共的宏定义类来表示我定义过了类型,你定义的不编译。
#ifndef SYSTEM_TYPE
#define SYSTEM_TYPE
typedef unsigned int size_t;
#endif
就是说假如没有宏定义了SYSTEM_TYPE,则定义这个宏定义,然后定义类型
如果定义了,这段代码不编译。就是说每个头文件都有一个公共的宏定义类来表示我定义过了类型,你定义的不编译。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询