我有一个头文件types.h,其中包含类型定义
typedef unsigned short int WORD;
我希望能够在我的main.c中只使用这个定义。Fortran
我已经习惯了能够做到这一点
use types, only: WORD
在 中是否有类似的形式C
?
我有一个头文件types.h,其中包含类型定义
typedef unsigned short int WORD;
我希望能够在我的main.c中只使用这个定义。Fortran
我已经习惯了能够做到这一点
use types, only: WORD
在 中是否有类似的形式C
?
只需包含您的头文件并使用typedef
:
// types.h
#ifdef FlagTypes
typedef unsigned short int WORD;
#endif
// main.c
#include <stdio.h>
#include "types.h" // That header file of yours
int main(int argc, char *argv[])
{
/* Define FlagTypes so you can use the one
that belongs in header file types.h and do
something with your typedef WORD... */
return 0;
}
在你的头文件中做这样的事情:
#ifdef _MY_FLAG
typedef unsigned short int WORD;
//other code needed
#else
//things you don't want
#endif
在文件中包含头.c
文件#include "types.h"
_MY_FLAG
然后用定义的方式编译你的代码
我不知道你为什么不想只包含标题?
std 库头文件有各种疯狂的预处理器,以确保以适当的方式构造类型......
就像它可能...
#ifdef LLP64
typedef long long my64
#else
typedef long my64
#endif
我认为您通常只想包含整个标题,也许您正在做一些违反 C 范式的事情