在 C99 中,对 _Complex 类型使用 '~' 运算符会执行复共轭。下面是一段示例代码:
#include <complex.h>
#include <stdio.h>
int main()
{
double _Complex a = 2 + 3 * I;
printf("%f,%f\n", creal(~a), cimag(~a));
}
输出结果为:
2.000000,-3.000000
这个在gcc和clang中都表现一致,这是一种扩展吗?我似乎在谷歌搜索的各种标准文件中找不到相关参考。
如果这是一种扩展,有没有方法可以禁用它?