对printf使用#define会对速度产生影响

时间:2015-09-02 20:30:57

标签: c++ c

我正在使用

#define printInt(x)  printf ("%d",x)

main()

我可以这样使用它:

int var=10;
printInt (var);

比输入

更容易使用
printf ("%d",var);

使用我自己的#define来打印intfloat等会让我的程序变慢吗?

2 个答案:

答案 0 :(得分:5)

不,这不会影响速度。宏在预处理期间被扩展,因此在您使用printInt(myInt)的每个实例中,实际传递给编译器的内容将是printf("%d", myInt)。所以我认为二进制输出将是相同的。

答案 1 :(得分:3)

不,它不会影响程序的速度。

在编译程序之前,预处理器会处理#define指令。

例如电话

printInt(var);

替换为

printf ("%d",var);

由预处理器。

因此,编译器无法确定是否使用了#define。在这两种情况下,它都会导致相同代码(以及相同的程序)。这就是为什么两个程序的速度都不同的原因。

编辑:如果在程序中使用了大量#defines,则可能会降低预处理步骤的速度。但在大多数情况下,这应该没问题。