首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言连字符#一边能否使用变量解决方案

2012-09-22 
C语言连字符##一边能否使用变量请教高手个问题,C语言连字符##可否使用变量是否只能在宏定义中使用?测试来

C语言连字符##一边能否使用变量
请教高手个问题,C语言连字符##可否使用变量
是否只能在宏定义中使用?
测试来看,好像不行? 下面例子中22,24行都不正确!

  1 #include "stdio.h"
  2 #include "stdlib.h"
  3
  4 #define uart_as_func(port) \
  5 uart_as_func##port()
  6
  7 #define uart_ss_func(port) \
  8 uart_as_func#port()
  9
 10 void uart_as_func3()
 11 {
 12 printf("dfasdfad\n");
 13 }
 14
 15 void uart_as_func33()
 16 {
 17 printf("sdgdgsf\n");
 18 }
 19 int main(int argc, char **argv)
 20 {
 21 int port = 3;
 22 //uart_as_func##3();
 23 uart_as_func(3);
 24 //uart_as_func(port);
 25 printf("uart_as_func##port\n");
 26 printf("uart_as_func###port\n");
 27 return;
 28 }


[解决办法]
##属于宏语言,在编译器起作用,显然不可以用于变量
[解决办法]
1、##是在预编译阶段展开的,不能用于变量;
2、##也不能用于函数和变量名,因为编译器会把它当作非法字符。

热点排行
Bad Request.