美文网首页
关于一些变量的使用

关于一些变量的使用

作者: FongG | 来源:发表于2016-11-29 16:05 被阅读0次

如何要声明一个可以被全局访问的的字符串常量👇

UIKIT_EXTERN NSString *const PYSearchPlaceholderText;
#define UIKIT_EXTERN         extern __attribute__((visibility ("default")))


</br>

const 用法解释

四种写法:
 1. static const NSString *HSCoder = @"汉斯哈哈哈"; // 指向的指针不能改变,static限制了不能被外部文件访问了
 2. const NSString *HSCoder = @"汉斯哈哈哈"; // 指向的内存地址的内容不能改变,但是可以改变指向的指针
 3. NSString const *HSCoder = @"汉斯哈哈哈";  // 指向的内存地址的内容不能改变,但是可以改变指向的指针
 4. NSString * const HSCoder = @"汉斯哈哈哈"; // // 指向的内存地址的内容不能改变(NSString本身就不能改变),指向的指针也不能改变。

注意:

  1. 以上4种情况,在另外一个文件中使用extern修饰变量,可以直接改变地址内存的内容。(不知道该怎么解决....才能使得在另外的文件中也不能修改)
  2. 局部常量:用static修饰后,不能提供外界访问

参考http://www.jianshu.com/p/f83335e036b5


</br>

static 用法解释


</br>

extern 用法解释

在源文件A里定义的变量,在其它源文件里是看不见的(即不能访问)。为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明: extern 变量; 这样,在源文件B里也可以调用那个变量了。

注意这里的用词区别:在A里是定义,在B里是声明。一个函数只能(也必须)在一个源文件里被定义,但是可以在其它多个源文件里被声明。定义引起存储分配,是真正产生那个实体。而声明并不引起存储分配。

打一个粗俗的比方:在源文件B里声明后,好比在B里开了一扇窗,让它可以看到A里的那个变量。

attribute 用法解释

attribute是GNU C的一种机制,用法为attribute_ ((attribute-list))。当项目需要作为一个库被外包引用的时候通常在编译时可以用参数-fvisibility指定所有符号的可见性。在编译命令中加入 -fvisibility=hidden参数,会将所有默认的public的属性变为hidden。此时,如果对函数设置attribute((visibility ("default")))参数,使特定的函数仍然按默认的public属性处理,则-fvisibility=hidden参数不会对该函数起作用。所以,设置了-fvisibility=hidden参数之后,只有设置了attribute((visibility ("default")))的函数才是对外可见的。


</br>

总结:如果需要让类或方法可以让库外被引用,就需要使用以上代码确保代码的可见性。

相关文章

  • 关于一些变量的使用

    如何要声明一个可以被全局访问的的字符串常量? const 用法解释 注意: 以上4种情况,在另外一个文件中使用ex...

  • VBA初学(笔记草稿1)

    关于变量的生存周期设置使用: 声明静态变量时使用statice,动态变量使用dim // VBA的数据类型分为: ...

  • iOS-大小坑

    本文大体是一些细节性的小坑,不定期更新,欢迎纠正。 关于变量的读写 变量的读写通常使用 self. 和 _ 两种方...

  • Basics-R中的变量

    问题 你想找到关于变量的信息。 方案 以下为关于样本变量的一些例子 关于存在 关于大小/结构 原文链接:http:...

  • 关于变量名命名规则

    我们知道JavaScript变量是弱类型变量,都以var来定义变量,但是关于变量命名,我们随时都在使用到的命名规则...

  • 关于变量

    关于变量 格式:数据类型 变量名 = 值; 变量都是先声明(并且定义),后使用 上面图片表达了如果未声明就使用变...

  • 重读《深入理解ES6》—— 块级作用域

    一、关于变量声明提升 在 ES5 中,我们通常会使用 var 来声明变量。在使用 var 声明变量的时候,通常会遇...

  • DAX连接表系列(四) ⅤAR変量(4)

    变量(4) 使用变量优化重复的DAX表达式 通过前面关于变量的介绍,知道了它的几个特点: ...

  • Handler消息机制

    ThreadLocal ThreadLocal是一个关于创建线程局部变量的类。使用ThreadLocal创建的变量...

  • webpack实战——生产环境配置【中】

    前言 上一篇中,描述了一些关于生产环境的配置:环境变量的使用、配置文件描述、开启生产模式、环境变量自定义配置等,从...

网友评论

      本文标题:关于一些变量的使用

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