一.變量的命名約定
由于windows程序很長慷妙,編程人員在一段時間后自己可能忘記所定義變量的含義僻焚。為了幫助記憶和區(qū)分變量,微軟創(chuàng)建了windows的命名約定膝擂,稱為匈牙利表示法虑啤。匈牙利表示法提供了一組前綴字符,如下(彩色表示常用的):
前綴 | 含義 |
---|---|
a |
數(shù)組 |
b |
布爾值 |
by | 無符號字節(jié) |
c |
字節(jié) |
cb | 字節(jié)記數(shù) |
rgb |
rgb顏色長整型 |
cx,xy | 計算x和y長度的短整形 |
fn | 函數(shù) |
h |
句柄 |
i |
整數(shù) |
m_ |
成員變量 |
n |
短整形 |
np | 近指針 |
p |
指針 |
l |
長整型 |
lp |
長指針 |
s |
字符串 |
sz | 以零結(jié)束的字符串 |
tm | 正文大小 |
w | 無符號整型 |
x架馋,y | 表示x或y坐標的無符號整形 |
二.頭文件
1.包含頭文件方式:
#include<iostream.h>
#include"myselfdefine.h"
2.<>和“”有什么區(qū)別呢狞山?
1??他們的區(qū)別在于編譯器搜索頭文件的順序不同:
<>表示從系統(tǒng)目錄下開始搜索,再搜索PATH環(huán)境變量所列出的目錄叉寂,不搜索程序的當前目錄萍启。
“”表示先從當前目錄搜索,然后搜索系統(tǒng)目錄办绝,再是PATH環(huán)境變量列出的目錄
2??防止頭文件被重復引用
引申[1]
3.頭文件被重復包含的解決辦法
如果一個頭文件伊约,被一個工程的很多類所包含姚淆,那么編譯器會報錯:頭文件被重復定義孕蝉。兩種解決辦法:
第一種:
使用#ifndef
和#define
和#endif
[cpp]
#ifndef HAVEDDEFINE
#define HAVEDDEFINE
class animal
{
public:
animal();
~animal();
}
#endif
在類第一次包含此頭文件,判斷是否還沒定義HAVEDDEFINE腌逢,如果沒有返回為真降淮,就往下執(zhí)行,定義#define HAVEDDEFINE搏讶,然后執(zhí)行到#endif結(jié)束佳鳖;第二次包含此頭文件,判斷是否還沒定義HAVEDDEFINE媒惕,因為已經(jīng)定義了HAVEDDEFINE系吩,條件判斷返回為假,就直接跳到#endif結(jié)束妒蔚,不執(zhí)行中間的代碼穿挨。
第二種:
使用#pragma once
[cpp]
#pragma once
class animal
{
public:
animal();
~animal();
}
編譯器執(zhí)行到pragma once會只包含一次
三.程序的編譯鏈接過程
**在編譯時 **:
1.由預處理器對預處理指令(#include,#define和#if)進行處理肴盏,結(jié)果是在內(nèi)存中輸出翻譯單元(一種臨時文件)
2.由編譯器接受預處理的輸出科盛,將源代碼轉(zhuǎn)換成包含機器語言指令的三個目標文件(擴展名為obj的文件)
注意:在以上兩個編譯的過程中,頭文件不參與編譯
** 在鏈接時**:
3.將目標文件和你所用到的c++類庫文件(.lib)一起鏈接生成可執(zhí)行程序exe
如下圖:
-
include 與 import的區(qū)別 一般來說菜皂,在導入 Objective-C 頭文件的時候使用 #import贞绵,包含 C 頭文件時使用 #include ?