![]() |
1
4
至少如果我正确理解你的问题,我可能会这样做:
(对于您想要修改的其他常量也是如此)。在makefile中,添加一些选项到makefile中,以便在必要时/如果需要,将正确的定义传递给编译器,因此如果要更改宽度,可以使用以下方法:
|
![]() |
2
2
不同的是,由于宏只是一个整数文本,编译器通常能够在编译时计算一堆数学。一个简单的例子是:
编译器实际上会发出:
没有乘法。如果将WIDTH更改为一个变量,它就不能这样做,因为它可以是任何值。所以几乎可以肯定的是 速度上的差异(多少取决于环境,而且往往很小,无关紧要)。
唯一真正的解决方案是使用一个单独的头文件,其中包含可以由脚本生成的常量,然后编译程序。或者如果没有太多直接传递给gcc。这当然牺牲了运行时的速度。我想知道运行时0.8秒的时间差是不是负担得起,编译一个程序(肯定要花一秒钟以上)是如何负担得起的? 脚本可以是这么简单:
其中prog.c包含常量.h或类似的内容(没有额外的标题)。
|
![]() |
3
1
您可以将相关定义存储到单独的头文件constants.h中:
|
![]() |
S. Jacson · 任意两台发电机的速度差(内置功能) 2 年前 |
![]() |
Sadeq Dousti · 相当于“嵌套删除”的执行性能SQL查询 2 年前 |
![]() |
Prince · 复制大型文件需要更多时间 2 年前 |
![]() |
Sagar · 为什么在循环之外声明变量会更快? 2 年前 |
![]() |
seco · 如何在不挂起页面的情况下加载JS 2 年前 |