__typeof__() 、 __typeof() 、 typeof()的区别_Qsir的博客-程序员秘密

技术标签: C\C++  C/C++  

  • 摘要:__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 )

     

    __typeof__()   、  __typeof() 、  typeof()的区别_IOS

    2.在main.m中写 typeof(),cmd + R 正确运行,控制台打印。

     

    __typeof__()   、  __typeof() 、  typeof()的区别_IOS

     

    3.将Xcode中的 GNU C 设置 成 标准C

     

    __typeof__()   、  __typeof() 、  typeof()的区别_IOS

     

    运行后发现报错了

     

    __typeof__()   、  __typeof() 、  typeof()的区别_IOS

    总结:如果希望更安全,建议使用__typeof__() 或者 __typeof()这样,如果用于编译的C语言版本发生变化,也不会受到影响。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Qsir/article/details/86496346

智能推荐

开发中遇到的bug-Cannot set property ‘__VUE_DEVTOOLS_UID__‘ of null_nnot set properties of null (setting '__vue_devtoo_火腿肠烧烤大赛冠军的博客-程序员秘密

把vscode安装的翻译包重启一下如果不生效=》直接卸载如果不生效=》把浏览器中的自带翻译功能关闭原因就是自带的翻译功能与Vue冲突关闭就好了

SpringMVC---四大注解_weixin_30449453的博客-程序员秘密

SpringMVC四大注解Component  通用标注,在不清楚使用哪个注解的时候,可以使用Component通用注解Controller  标注web请求控制器Service  标注Service层的服务Repository  标注DAO层的数据访问四大注解都是类级别的,可以不带任何参数,也可以带一个参数,代表bean名字,在...

电商后台商品管理和订单管理分享_shishi7149的博客-程序员秘密

因负责公司的教育电商后台产品的重构和设计,在商品管理和订单管理上踩了一些坑,积累了一些自己的思考,现在整理出来,分享给大家。对于后台产品经理来说,有面向业务方的内部后台系统,也有面向c端用户的后台支持系统,比如强大的电商后台。电商领域发展数十年,产品架构和用户体验已经非常成熟,无论是实体电商还是虚拟电商,都有可以直接借鉴的成熟电商产品。对于在业务上比较复杂的公司,完全可以站在巨人的肩膀上模仿学...

Flutter之RefreshIndicator下拉刷新及ScrollController上拉加载更多_flutter 下拉查询更多_id-whc的博客-程序员秘密

用到的第三方组件:dio: ^3.0.9用到的官方组件:RefreshIndicator、ScrollControllerimport 'package:flutter/material.dart';import 'package:dio/dio.dart';class RefreshIndicatorPage extends StatefulWidget { ...

苹果暗黑模式怎么开_安卓微信暗黑模式(深色模式)怎么开启?手机什么条件才支持?..._weixin_39525307的博客-程序员秘密

最近关于暗黑模式,我们看到了很多人都在找,也都在说怎么找到呀?如何才能找到呢?成了很多人的话题之一,接下来我们就针对这个问题来和大家讨论一下,让大家都知道什么条件才可以支持,从而能够告诉别人,在别人的心目中地位大升,因为你懂得比他们都多。这个也是为了大家娱乐而已,切记不要因为始终找不到而头疼或者急躁,那就得不偿失了。接下来开始进入正题:1、首先微信要更新到最新的7.0.13版本,这个是目...

三菱je -c中映射表的作用_最新款中东版三菱帕杰罗V93 现车热卖_weixin_39652136的博客-程序员秘密

20款中东版三菱帕杰罗V93 顶配现车抄底价配置:真皮座椅、8气囊、双差、带电子制动力分配系统、胎压监测系统、265/65R17 112H轮胎、镀铬门内把手、中央门锁、电动车窗、电子镀铬后视镜、氙气大灯、带大灯清洗、带制动辅助的主动稳定性和牵引力控制系统、超选4wd、带金色标志、同尺寸备胎、灭火器、急救箱和应急三脚架、四辐真皮包裹方向盘、第二排60/40分体式座椅靠背 高配比低配多:双差、8气囊、...

随便推点

【译】RL-RTX(CM3)的任务中不能配置NVIC,否则进入HardFault的原因_念隐的博客-程序员秘密

RL-RTX(CM3)的任务中不能配置NVIC,否则进入HardFault的原因http://www.keil.com/support/man/docs/rlarm/rlarm_ar_cfgrunpriv.htm运行在特权模式Cortex-M设备的RTX库允许选择用户任务的运行模式。任务可以运行在两个模式:非特权模式——受保护的模式特权模式——不受保护的模式【译注:

Ubuntu开启root用户及其它登录问题的解决_Solomon1588的博客-程序员秘密

背景简介:   Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许“su”到 root。对于桌面用户来说,这样安全性更高一些,是应该的;但对于服务器可以设置成“允许 su 到root,但不允许root用户直接登录”。参考资料:http://www.zxlm.cn/fh/thread-8061-1-1.htmlhttp://os.51cto.com/art

iOS经典讲解之NSUserDefaults_ios userdefaults 原理_刘新林的博客-程序员秘密

转自  http://blog.csdn.net/enuola/article/details/7959767NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名、密码之类的,个人觉得使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯。因为如果使用自己建立的plist文件

OpenCV笔记(七)IplImage结构体初解_大道至简的博客-程序员秘密

OpenCV主要针对的是计算机视觉方面的处理,因此在函数库中,最重要的结构体是IplImage,IplImage结构体来源于Intel的另外一个函数库IpL,主要针对图像处理。一、常用的几个IplImage结构体成员:typedef struct _IplImage{ int nSize;//IplImage的大小sizeof(IplImage)。 i

取景框图片 小程序_小程序实现身份证取景框拍摄_weixin_39564605的博客-程序员秘密

身份证取景框的实现主要是借助于camera 组件及cover-view组件先看下案例wxml代码js代码Page({/**页面的初始数据/data: {src: ‘’,show: false},cancelBtn () {this.setData({show: false})},saveImg () {wx.showModal({title: ‘图片地址’,content: this.data.s...

小程序构建骨架屏的探索_前端大全的博客-程序员秘密

(点击上方公众号,可快速关注)作者:jayzouhttps://segmentfault.com/a/1190000015876164首屏一般情况下,在首屏数据未拿到之前...

推荐文章

热门文章

相关标签