读书人

define 与字符串的一个有关问题

发布时间: 2012-08-25 10:06:20 作者: rapoo

define 与字符串的一个问题
我现在有个程序需要接受的参数APP_NAME形式必须是:
#define APP_NAME csdn

如果我手头只有字符串"csdn"
怎样能做到上述的define样式来?
即我有一字符串"aaa"
要#define APP_NAME aaa
要里面的内容而不要这个字符串。


[解决办法]
楼主大概是想把字符串替换成变量名

答案是不可能,变量名只在源代码与编译过程中存在,程序运行时所有的变量都只有一个内存首地址,你定义int sss和int abcdefg,编译后的程序是一模一样的,因此,运行时才有效的字符串不可能和编译时就已经消失的变量名达成任何对应关系
此外,#define是预编译命令,它在编译前生效,连编译过程都不参与,自然更加不可能和运行时才有效的字符串有任何对应关系
建议楼主不要自己发明语法,好好学学基础知识

当然以上都是我自己的理解
说到底,楼主的发言就各种诡异,函数必须接受一个预定义宏?预定义宏的作用就只是单纯的替换,和函数参数类型有啥关系?现在有一个字符串?这个字符串是存在于楼主脑海中还是写在txt文件里还是运行时输入?
对于这种无法理解的要求,我只能根据见过的新手们的常用发明来理解,如果我的理解和楼主的要求完全对不上,那也没办法——反正语文不好的不是我,碰到难题的也不是我

读书人网 >C语言

热点推荐