美文网首页
说说TYPEOF的两三事

说说TYPEOF的两三事

作者: 不冷的南风 | 来源:发表于2019-01-13 17:16 被阅读128次

    很久没写过东西了, 也许是工作忙, 也许...好吧, 我承认是自己懒了😂, 高深的现在还没整理好, 先写个自己常碰到的一个小点😂, 大神请忽略😂

    说点场景

    在开发中, 在block代码块中我们经常需要对控制器做弱引用, 这个时候关键字tppeof就派上用场, 可是我们经常会看到有的人是这样使用的__weak __typeof__(self) wself = self;有的是这样使用的__weak typeof(self) wself = self;, 有的是这样使用的__weak __typeof(self) wself = self;, 这三种方式有什么区别呢

    啥原因

    __typeof__()typeof()__typeof()等都是C语言的扩展, 要表达的意思都是一样的, 这个时候需要说到C的发展, 其中两个阶段, GNUC标准CGNUC环境下, 其扩展是支持直接写__typeof__()typeof()__typeof()而在标准C环境下, 其扩展是以__开头, 所以其只能写成__typeof__()__typeof()

    开发怎么处理

    iOS开发中, 我们知道是使用Clang编译器, 默认用的C语言版本是GNU11, 但为什么我们却可以使用typeof()呢, 原来在Xcode的IDE中默认设置了支持typeofinlineasm等, 截图如下:

    编译对特定词的支持.png

    但是若是你把C语言的支持设置为标准C, 则Xcode就不会支持, 截图如下:

    标准C.png 错误.png
    回顾一下

    鉴于上面这些知识, 在开发中, 为了更好的代码规范, 建议还是使用__typeof__()__typeof(), 写到这里吧, 周末快乐😂

    相关文章

      网友评论

          本文标题:说说TYPEOF的两三事

          本文链接:https://www.haomeiwen.com/subject/xrlldqtx.html