我正在使用
#define printInt(x) printf ("%d",x)
在main()
我可以这样使用它:
int var=10;
printInt (var);
比输入
更容易使用printf ("%d",var);
使用我自己的#define
来打印int
,float
等会让我的程序变慢吗?
答案 0 :(得分:5)
不,这不会影响速度。宏在预处理期间被扩展,因此在您使用printInt(myInt)
的每个实例中,实际传递给编译器的内容将是printf("%d", myInt)
。所以我认为二进制输出将是相同的。
答案 1 :(得分:3)
不,它不会影响程序的速度。
在编译程序之前,预处理器会处理#define
指令。
例如电话
printInt(var);
替换为
printf ("%d",var);
由预处理器。
因此,编译器无法确定是否使用了#define
。在这两种情况下,它都会导致相同代码(以及相同的程序)。这就是为什么两个程序的速度都不同的原因。
编辑:如果在程序中使用了大量#defines
,则可能会降低预处理步骤的速度。但在大多数情况下,这应该没问题。