我有一个微妙的问题; 我想编写可移植的代码(这就是为什么我坚持使用最后三个ISO-C标准定义中的任何一个)和机器无关(因此,汇编程序是不可能的),但这让编译器打包几个(一个CPU周期内的独立)指令.
我认为使用逗号运算符可以解决问题,但是标准说每个昏迷都是一个排序点,所以它不会这样做.
我想利用多个独立的赋值,加法等(正如寄存器变量是编译器可能的优化和操作的独立性的指示).
有谁有想法吗?
让编译器进行优化.
当编译器识别出它们是独立的并且没有交互时,它可以跨序列点进行优化.
例如,在代码中:
a = x+y;
b = y+z;
Run Code Online (Sandbox Code Playgroud)
编译器可以识别分配a
和b
完全相互独立,并且可以同时执行这两个操作,尽管有序列点.
作为一般规则,您不能比编译器做得更好.
让编译器完成创建快速,高效代码的工作,您应该专注于您的工作:
为无错算法编写清晰,明确的指令.