-1

我有一个头文件types.h,其中包含类型定义

typedef unsigned short int WORD;

我希望能够在我的main.c中只使用这个定义。Fortran我已经习惯了能够做到这一点

use types, only: WORD

在 中是否有类似的形式C

4

3 回答 3

1

只需包含您的头文件并使用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;
}
于 2013-10-28T21:22:38.260 回答
1

在你的头文件中做这样的事情:

#ifdef _MY_FLAG
typedef unsigned short int WORD;
//other code needed
#else
//things you don't want
#endif

在文件中包含头.c文件#include "types.h"

_MY_FLAG然后用定义的方式编译你的代码

于 2013-10-28T21:23:48.287 回答
0

我不知道你为什么不想只包含标题?

std 库头文件有各种疯狂的预处理器,以确保以适当的方式构造类型......

就像它可能...

#ifdef LLP64
    typedef long long my64
#else  
    typedef long my64
#endif

我认为您通常只想包含整个标题,也许您正在做一些违反 C 范式的事情

于 2013-10-28T21:46:10.850 回答