黑马程序员技术交流社区

标题: objective-c中的文件包含 [打印本页]

作者: nsswift    时间: 2015-5-24 09:00
标题: objective-c中的文件包含
本帖最后由 nsswift 于 2015-6-12 17:24 编辑

C语言和C++中我们都使用#include来包含头文件,但是这样我们容易一个头文件可能被包含多次,这样就需要我们用#ifndef,#end这样的宏定义来避免文件重复引用的问题。
       Objective-C中则使用了#import来包含头文件,这样一个头文件就只能包含一次,直接避免了c语言和c++中使用#include文件重复引用。
       @class和#import 的区别:

        #import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这个类是如何定义的,暂时不用考虑。
       比如在.h文件中我们只需要知道被引用的类的名称就可以了,不需要调用实体变量和方法,所以.h文件一般只需要@class来声明这个名称是类的名称,头文件中使用@class不仅效率高(比如类文件更改其他包含这个类的都需要重新加载),同事还可以解决循环引用的问题。而在.m文件里边因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。


作者: 天是蓝色的    时间: 2015-5-24 10:21
不错,菜鸟前来学习
作者: 649678291    时间: 2015-5-24 10:33
#include<stdlib.h>你这个头文件用到那个函数了?
作者: 649678291    时间: 2015-5-24 10:34
#include<stdlib.h>你这个头文件用到哪个函数了?
作者: nsswift    时间: 2015-5-24 10:46
649678291 发表于 2015-5-24 10:33
#include你这个头文件用到那个函数了?

你好,我做调试的时候最后有         system("pause");
我一般喜欢在程序最后加上这个,执行完以后会停在那里省去做断点
我发的时候觉得这句不影响算法就删掉了,       
system("pause");这个用到了#include<stdlib.h>
作者: cui0wei0    时间: 2015-5-24 14:08
nsswift 发表于 2015-5-24 10:46
你好,我做调试的时候最后有         system("pause");
我一般喜欢在程序最后加上这个,执行完以后会停在那里省 ...

学C语言最好不要用Windows做的东西
作者: 张晓珊    时间: 2015-5-24 16:18
最后输出是应该写为——printf("1~100中所有7的倍数的个数为%d。\n", count);——这样,只输出count的值,用户怎么知道输出个这玩意儿是什么意思啊!用户体验非常重要的,要从小的细节开始注意!
作者: 行知灬哒    时间: 2015-5-24 16:35
支持一下  这道题还可以再加点难度,包含7的,能被7整除的,楼主可以试下
作者: mony    时间: 2015-5-24 17:50
100/7 不就是结果么   {:3_50:}
作者: hi虚无缥缈    时间: 2015-5-24 19:07
不错,多分享.
作者: woaidd99    时间: 2015-5-24 21:06
不错思路 值得学习
作者: jingkai    时间: 2015-5-24 21:22
基础测试里的题吧少年
作者: hehelaicaicai    时间: 2015-5-24 22:24
for(int i=0;i<=100;i++)  这里应该是for(int i=1;i<=100;i++)吧?
作者: 追随自然    时间: 2015-5-24 22:27
菜鸟报道!
作者: Never_Yg    时间: 2015-5-24 22:41
看看学习下
作者: kansiliyundi    时间: 2015-5-24 22:48
学习了,大家很努力嘛
作者: zhangshuai    时间: 2015-5-25 15:14
#include<stdlib.h>

这个头文件没有用到吧?

作者: badbaby    时间: 2015-5-26 19:33
都是菜鸟。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2