- 摘要:__typeof__()和__typeof()和typeof()都是C的扩展,且意思是相同的,标准C不包括这样的运算符标准C:ANSIC,ISOC,StandardCC89C99C11这些其实都是一个东西,只是不同时期的叫法。GNUC:(革奴C)支持标准C的基础上做了一些C扩展在标准C中写扩展是以__开头,所以在标准C中要写成__typeof()或__typeof__()在GNUC中支持直接写typeof()或者__typeof()或者__typeof__()iOS使用Cla
-
__typeof__()和 __typeof()和 typeof() 都是 C 的扩展,且意思是相同的,标准C不包括这样的运算符
标准C: ANSI C ,ISO C, Standard C C89 C99 C11 这些其实都是一个东西,只是不同时期的叫法。
GNU C: (革奴 C) 支持标准C的基础上做了一些C扩展
在标准C 中写扩展是 以 __ 开头,所以在标准C中要写成 __typeof() 或 __typeof__()
在GNU C 中支持直接写 typeof() 或者 __typeof() 或者 __typeof__()
iOS 使用Clang编译器,默认用的C语言版本是GNU99 ,并且允许'asm'inline''typeof'的选项设置为Yes。
因此使用typeof() 完全ok。
如果以后用于编译的C语言版本 不是GNU C了,你就炸了。直接报错
做个简单的验证:
1.Xcode中新建一个命令行项目 (注意创建项目时,语言选的是C语言,不是OC。 如果选择OC创建OC项目的话,当选择标准C的时候,系统的有些类就直接报错,看不到typeof的错误),(下图,可以看到默认是GNU99 )
2.在main.m中写 typeof(),cmd + R 正确运行,控制台打印。
3.将Xcode中的 GNU C 设置 成 标准C
运行后发现报错了
总结:如果希望更安全,建议使用__typeof__() 或者 __typeof()这样,如果用于编译的C语言版本发生变化,也不会受到影响。
详细解决方案
__typeof__() 、 __typeof() 、 typeof()的区别
热度:99 发布时间:2023-12-08 03:04:07.0
相关解决方案
- c#中的 typeof 是什么意思?解决方法
- [Designer(typeof()) ]是什么意思?该如何解决
- 对constructor、typeof、instanceof 的懂得
- document.write(typeof(document.getElementById("xx").getElementsByTagName))有错么?解决方法
- typeof typeof 123 为什么返回的是string类型?解决办法
- JavaScript 中 typeof 的疑难有关问题!
- if(typeof window.nodeEvent!='undefined'),该怎么解决
- angular8 typeof Observable”上不存在属性“forkJoin”
- 《js笔记系列》typeof
- __typeof__() 、 __typeof() 、 typeof()的区别
- JavaScript基础——检测数据类型(typeof)、数据类型转换、window对象的方法 、分支结构 (if单分支、if-else 双分支、多重if结构)
- js typeof 返回类型
- javascript中的小细节---true,undefined,typeof
- javascript中的undefined,null,typeof
- 微信小程序中常见的 typeof cb == “function” cb(that.globalData.userInfo)
- typeof 和 instanceof 区别
- typeof instanceof 区别