亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

目標C中的導入和包含有什么區別?

目標C中的導入和包含有什么區別?

陪伴而非守候 2019-07-10 10:20:39
目標C中的導入和包含有什么區別?在Object-C中,#import和#include有什么區別,在哪些時候您應該使用其中一個而另一個呢?有人反對嗎?我正在閱讀以下教程:http:/www.otierney.net/object-c.html#序言它關于#import和#include的段落似乎自相矛盾,或者至少還不清楚。
查看完整描述

3 回答

?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

將#import指令添加到Object-C中,作為#include的改進版本。然而,它是否得到改善仍然是一個爭論的問題。#import確保一個文件只包含一次,這樣您就不會遇到遞歸包含的問題。然而,大多數像樣的頭文件都會保護自己不受這種影響,所以這并不是什么好處。

基本上,這取決于你決定你想使用哪一種。我傾向于為Object-C(比如類定義等)導入標題,并包括我需要的標準C內容。例如,我的一個源文件可能如下所示:

#import <Foundation/Foundation.h>#include <asl.h>#include <mach/mach.h>


查看完整回答
反對 回復 2019-07-10
?
心有法竹

TA貢獻1866條經驗 獲得超5個贊

我同意杰森的觀點。

我在做這件事時被抓到了:

#import <sys/time.h>  // to use gettimeofday() function#import <time.h>      // to use time() function

對于GNU GCC,它一直抱怨time()函數沒有定義。

因此,我將#import改為#include,一切順利。

理由:

您#import<sys/time.h>:
    <sys/time.h> includes only a 部分<time.h>的值,使用#Definition

您#import<time.h>:
不去。即使只包含了<time.h>的一部分,如
就#import而言,該文件現在已經完全地包括在內。

底線:

C/C+報頭傳統上包括零件包括其他文件。
因此,對于C/C+頭,請使用#include。
對于objc/objc+頭,使用#import。


查看完整回答
反對 回復 2019-07-10
  • 3 回答
  • 0 關注
  • 554 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號