ios - Xcode编译出现警告的原因都有哪些
伊谢尔伦
伊谢尔伦 2017-04-18 09:29:47
0
1
395

以下代码编译通过也能正常运行,但编译器会在第一行显示警告。警告为:
'extern' variable has an initializer。// 'extern'变量初始化

// main.m
extern int var = 10;
int main(void)
{
 var = 10;
 return 0;
}

目前对extern的认识是:它是会声明一个工程内全局共享变量,但不给予实现,也就是不会为其申请内存,等到定义时才会申请内存空间。
正常的使用方法如下:

// .h
extern int var;
// .m
int var = 10;

我的认识是:警告的原因是extern是设计用来声明一个变量或方法,并未涉及定义。但语法也是允许定义为其分配内存空间。

问题是:

  1. 设计成错误和警告的界限应该是警告代表编译通过,但运行时是否发生错误就不确定了,可能崩溃也可能不崩溃。错误那就是显而易见的无法通过编译。那么编译出现警告的原因都有哪些呢?(貌似这个问题蛮大的,提出来就是想讨论总结下)

目前已知的 Xcode编译出现警告的原因:

  1. API is deprecated

  2. 类型问题。 比如应传入NSInteger类型,但传入的是NSObject类型。

  3. 还有上面的这个例子,但这属于什么类型的编译警告呢?语法不推荐吗?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all(1)
刘奇

Compilation warnings for all languages
Search for GCC in Target->Build Settings->(remember to select All on the left side of the search box)
Scroll down to see warnings for each language
For information about turning on warnings, check out Meow God’s blog
Simple address for eliminating warnings
Everyone is welcome to add!

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!