为printf使用#define,会对速度产生影响吗
Using #define for printf, does it effect on speed
我正在使用
#define printInt(x) printf ("%d",x)
在main()
中
我可以这样使用:
int var=10;
printInt (var);
哪个比键入更容易使用
printf ("%d",var);
使用我自己的#define
打印int
、float
等会使我的程序变慢吗?
否,这不会影响速度。宏在预处理过程中进行了扩展,因此在使用printInt(myInt)
的每个实例中,实际传递给编译器的将是printf("%d", myInt)
。所以我认为无论哪种方式,二进制输出都是相同的。
#define
指令在编译程序之前由预处理器进行处理。
例如呼叫
printInt(var);
被取代
printf ("%d",var);
通过预处理器。
因此,编译器无法确定是否使用了#define
。在这两种情况下,它都会导致相同的代码(以及相同的程序(。这就是为什么两个程序的速度不可能不同的原因。
编辑:如果在程序中使用大量#defines
,则可能会降低预处理步骤的速度。但在大多数情况下,这应该没有问题。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 为什么在读取文件大小时文件IO速度会发生变化
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 文件系统:复制功能的速度秘诀是什么
- 为什么擦除方法会影响结束方法
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 使用"静态"如何影响我的代码速度?
- OpenGL 更新缓冲区如何影响速度
- 此分配对速度有影响吗?
- 编译器优化如何影响数据加载速度
- 头文件是否会影响程序的内存或处理速度
- c++编译器如何扩展模板<>代码,它如何影响模板代码的速度?
- 辅助功能级别对性能或速度的影响
- 基于libpcap的应用程序是否会影响网络速度/性能
- 为什么将 std::endl 与 ostringstream 一起使用会影响输出速度
- 如何保存两个相机的数据,但不影响它们的图片采集速度?
- 分配大小是否会影响其速度
- DLL对执行速度的影响
- 为printf使用#define,会对速度产生影响吗
- Java的JITter如何影响测量代码速度?