gcc预处理器typedef名称替换

时间:2012-10-21 03:14:26

标签: c gcc

有没有办法让gcc预处理器用typedef定义的类型替换类型,即

类似的东西:

typedef unsigned char Uint8

int main(void)
{
    Uint8 a = 1;
    Uint8 b = 2;
    Uint8 c;

    c = a + b;

    return 0;
}

会预处理成这样的东西:

int main(void)
{
    unsigned char a = 1;
    unsigned char b = 2;
    unsigned char c;

    c = a + b;

    return 0;
}

1 个答案:

答案 0 :(得分:2)

不,没有,因为类型别名是编译阶段的一部分,而不是预处理阶段。因此,预处理器无法通过设计了解任何类型,也无法对这些类型执行任何操作。此外,您忘记将;放在typedef语句的末尾。