![]() |
1
3
根据构建环境的不同,您可能可以编写一个实用程序,生成包含在其他文件中的头文件:
当然,可以根据需要进行编辑。然后在需要这些定义的地方包含“vartypes.h”。 编辑
注意在第二个中缺少下划线-第一个创建
警告
:这仅适用于8位
|
![]() |
2
3
抱歉,此信息在预处理器阶段不可用。为了计算一个变量的大小,你必须做几乎所有的解析和抽象求值的工作-而不是 代码生成,但您必须能够计算常量表达式和替换模板参数,例如。您必须比预处理器通常了解更多关于代码生成目标的信息。
|
![]() |
3
3
你为什么需要这个?
The
|
![]() |
4
2
不,不可能。举个例子,在一台机器上运行预处理器是完全可能的,在一台完全不同的机器上单独编译(可能)不同大小的(至少某些)类型。 对于一个具体的例子,考虑 SQLite 是他们所说的“合并”--一个已经预处理的源代码文件,你实际上在你的计算机上编译。 |
![]() |
5
2
|
![]() |
6
1
那怎么办?在预处理阶段不知道大小。此时,您只有源代码。找到类型大小的唯一方法是编译它的定义。 您不妨寻求一种方法来获得在编译阶段运行程序的结果。答案是“你不能,你必须运行程序才能得到它的输出”。就像你需要编译程序来获得编译器的输出一样。 你想干什么? 关于你的编辑,它似乎仍然困惑。 可以想象,这样一个报头是内置的 类型 再说一次,你想做什么?你想解决什么问题?如果你再给我们一点背景,也许有一个明智的解决办法。 |
![]() |
7
1
对于常见的构建环境,许多框架都是手动设置的。例如, http://www.aoc.nrao.edu/php/tjuerges/ALMA/ACE-5.5.2/html/ace/Basic__Types_8h-source.html 定义像ACE\u SIZEOF\u CHAR这样的东西。在我买的一本书《波什》中描述的另一个图书馆也以一种非常包容的方式做到了这一点: http://www.hookatooka.com/wpc/ |
![]() |
8
0
“标准化”一词就是问题所在。虽然没有标准的方法,但是使用某种配置实用程序设置一些预处理器符号并不是很困难。一个真正简单的方法是编译并运行一个小程序,用sizeof检查大小,然后输出一个包含一些符号集的include文件。 |
![]() |
George S. · 是否存在基于元组的控制流语句内部表示? 7 年前 |
![]() |
FlatAssembler · 在x86程序集中计算exp(x) 7 年前 |
![]() |
cib · 即时编译和动态编译有什么区别? 7 年前 |
![]() |
Artemis · 寄存器与指令之间的差异 7 年前 |
![]() |
Sam · 了解go工具编译和链接命令 7 年前 |