timeboy001 发表于 2010-10-19 10:58

请教一个预编译的问题(有难度)

怎样将如下代码在g++中与编译通过

#define func(a,b) name##a##b


int main()
{
    func(fff,());
}

现在报错是
pasting "namefff" and "(" does not give a valid preprocessing token

jzhang918 发表于 2010-10-19 14:06

#define func(a) name##a


int main()
{
    func(fff)();
}

timeboy001 发表于 2010-10-19 14:26

楼上,()必须是以参数的形式传入

EricFisher 发表于 2010-10-19 21:46

参数必须是标志符么? () 是合法的标志符么?

cjaizss 发表于 2010-10-19 22:18

macro的对象必须要是合法标志符,你的()算什么?

prolj 发表于 2010-10-20 08:29

确实有难度:outu::outu::outu:

system888net 发表于 2010-10-20 08:58

func(fff,());
timeboy001 发表于 2010-10-19 10:58 http://linux.chinaunix.net/bbs/images/common/back.gif


    lz 这句代码的设计含义是?

snail_314 发表于 2010-10-20 16:56

语法糖衣
页: [1]
查看完整版本: 请教一个预编译的问题(有难度)