柿子饼同学 发表于 2022-4-7 18:43:11

宏定义##的问题

#include <bits/stdc++.h>
using namespace std;

#define together(a, b) a ## b

int main(){
      printf("%s", together("2", "33"));
      return 0;
}不是说宏定义里面##可以把两个东西合在一起嘛 , 我就想试试字符串 , 但是报错了
所以为啥报错 , 然后这样的宏定义有什么实际用处?

大马强 发表于 2022-4-7 19:02:15

##

ba21 发表于 2022-4-7 19:08:06

a ## b 不等于 a##b
他不是语句,不能多的字符别多

想入门的新人 发表于 2022-4-7 20:02:50

宏定义的用处:

想入门的新人 发表于 2022-4-7 20:05:38

想入门的新人 发表于 2022-4-7 20:02
宏定义的用处:

可以节约很多空间、和代码维护

想入门的新人 发表于 2022-4-7 20:08:23

想入门的新人 发表于 2022-4-7 20:05
可以节约很多空间、和代码维护

#include "phoneInformations.H"
#define MAX 1024
例如我这个程序中后面可能要改一个数字,利用宏定义就可以只改一次
还有就是利用宏定义替换一些简短的计算

柿子饼同学 发表于 2022-4-7 22:06:10

想入门的新人 发表于 2022-4-7 20:08
#include "phoneInformations.H"
#define MAX 1024
例如我这个程序中后面可能要改一个数字,利用宏定义 ...

ok , 谢谢回答~

柿子饼同学 发表于 2022-4-7 22:08:24

ba21 发表于 2022-4-7 19:08
a ## b 不等于 a##b
他不是语句,不能多的字符别多

谢谢
页: [1]
查看完整版本: 宏定义##的问题