【iOS開發】.h,.m,.mm,.cpp等區別

因爲直接是從java轉OC的,所以對這些剛開始不是很理解,所以記錄下來

文件區別:

.h :頭文件。頭文件包含類,類型,函數和常數的聲明。 
.m :源代碼文件。這是典型的源代碼文件擴展名,可以包含Objective-C和C代碼。 
.mm :源代碼文件。帶有這種擴展名的源代碼文件,除了可以包含Objective-C和C代碼以外還可以包含C++代碼。僅在你的Objective-C代碼中確實需要使用C++類或者特性的時候才用這種擴展名

.cpp:只能編譯C++ 

當你需要在源代碼中包含頭文件的時候,你可以使用標準的#include編譯選項,但是Objective-C提供了更好的方法。#import選項和#include選項完全相同,只是它可以確保相同的文件只會被包含一次。Objective-C的例子和文檔都傾向於使用#import。

.m 和.mm 的區別是告訴gcc 在編譯時要加的一些參數。當然.mm還可以命名成.m,但在編譯時要手動加參數(麻煩)

常用場景:

如果你的OC代碼裏面有包含C++的引用或代碼,將此類更改爲.mm即可;

例子:

ERROR:./zxing/cpp/core/src/zxing/common/Counted.h:21:10: 'iostream' file not found

 在引用zxing的時候#import<QRCodeReader.h>用到了iostream,但是它是/iphoneOS6.1/user/include/c++下面的類,故需要把類名改爲.mm即可

注意#import或#include的位置要在.mm文件裏,如果在.h頭文件裏是沒用的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章