您的位置:首页 > 编程语言 > C语言/C++

C语言的HelloWorld 过渡到 OC的HelloWorld

2016-07-18 18:20 281 查看

C语言的HelloWorld 过渡到 OC的HelloWorld

/*C的HelloWorld */
#include<stdio.h>

int main(void)
{
printf("Helloworld!\n");
return 0;
}


/*OC的HelloWorld */
#import <Foundation/NSObjCRuntime.h>

int main()
{
NSLog(@"HelloWorld!");
return 0;
}


  —————————比较C与OC的HelloWorld——————————
1.打印函数的比较:
1) C语言中输出或打印时需要调用函数printf,它对应在头文件stdio.h中, 而 OC 则调用NSLog函数,它在对应的头文件Foundation/NSObjCRuntime.h中可找到。

2) printf 不会自动换行,需要添加”\n”符,

而NSLog则会自动换行,不用添加什么鬼 \n 符,但在OC的所有字符串前都要加上 @ 符,所以这里出现了个@ 的奇葩符号。

2.包含头文件预编译指令#include 与 #import的比较:
1)不小心写了很多个
#include<stdio.h>
,会增加预编译的次数,即老是跑到头文件stdio.h中,累不累啊!

2)不小心写了很多
#import<Foundation/NSObjCRuntime.h>
,只会预编它一次,即只会跑进头文件Foundation/NSObjCRuntime.h 中一次。

3. OC引入了主头文件的概念。
1) 比如:Foundation.h主头文件包含了NSObjCRuntime.h的声明,请看下图。恩!注意到没有”
#import <Foundation/Foundation.h>
“第一个单词Foundation (它有个高大上的名为,Foundation框架)与主头文件的名字是一样的!也就是说,主头文件名是跟框架名一样的!再也不用担心调用函数或方法时要记忆起那么多头文件了!改进代码如下:

/*OC的HelloWorld */
#import <Foundation/Foundation.h>//包含了NSObjCRuntime.h

int main()
{
NSLog(@"HelloWorld!");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  OC c语言 helloworld