Code Bye

关于C Primer Plus 上泛型的疑问

代码如下:
#define SIN(X) _Generic((X),\
long double: sinl((X)/RAD_TO_DEG),\
default:     sin((X)/RAD_TO_DEG),\
float:       sinf((X)/RAD_TO_DEG)\
)

但是本人的VS是编译不过的

这就显得很奇怪(这个只是今天碰巧要用到所以查书现学的)
还请各位来回答下!

解决方案

20

vc只有在文件名.c的时候才用c编译。cpp就用c++编译。你这_Generic是c11的东西,不是c++的东西。
而且vc是不是支持c11本人还不确定。毕竟vc全称叫vc++。换个gcc啥的学c(11)吧

40

引用:
Quote: 引用:

vc只有在文件名.c的时候才用c编译。cpp就用c++编译。你这_Generic是c11的东西,不是c++的东西。
而且vc是不是支持c11本人还不确定。毕竟vc全称叫vc++。换个gcc啥的学c(11)吧

C++不是完美兼容C的吗?

C++并不是全部C的内容都有的,甚至有些都完全不同
如C99中的变长数组,C++也是不支持的


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于C Primer Plus 上泛型的疑问