全局常量定义,全局常量是什么
怎样定义全局常量
1、记住一条就够了:在函数之外定义的变量就是全局变量。用static修饰的变量可以是全局的,也可以是局部的,所以说“用static修饰的变量是全局变量”是错误的。用static修饰的变量的生命周期与全局变量一样,但可见性仍分全局和局部。
2、全局变量在整个c文件中都能使用,而局部变量在其作用域内才能使用,举个例子:
int f = 7;// 这个是全局变量
int myadd(int a, int b)
{
int c = a + b;// c是局部变量,只能在myadd中使用
return c;
}
int main(void)
{
printf("%d\n", c);// 因为c是myadd中定义的局部变量,这里会报错。
printf("%d\n", f);// f是全局变量,这句是正确的。
}
OC 中定义全局常量的方法
以上两种方法都能定义常量但是第一种
在 .h 文件中
在 .m 文件中
另一种方法 #define kMyConstantString @"Hello"
但是第一种方法更快, 效率更高, 原因是第一种比较的是指针地址, 第二种是比较每个字符串是否相等. 显而易见, 第一种速度更快
还有另种是使用 static inline function
一些调用频繁的简单函数, 也可以使用以上方式, 相比定义宏来说, 此方法可以进行编译检查, 防止出错. 例如
在其他地方调用即可

java中的全局常量是什么意思?
java中的全局变量是由public修饰的static成员变量,形如public static int ID; java中的全局变量是放在静态方法区中的,所有的实例对象会共享同一份全局变量。所以一旦对某个类实例化后对其中的全局变量做出修改,那么其他的实例其中的全局变量值也相应的会被修改。
全局常量的定义,const和指针的区别
取决于const 的位置
比如常见的char *
如果定义
const char *p;
那么 这个是常量指针, const 修饰的是*p 表示 *p是不能改变的。
而如果是
char * const p;
这个就是常量指针, 表示p不能修改。
而如果是
const char * const p;
就是指向常量的指针常量。
在实际应用中,常量指针 更为多见。