我們程式設計吧 之 C 學習手冊v0 1

2021-07-10 09:58:41 字數 1477 閱讀 5889

* version 0.1 *

參考程式escape_char.cpp

typedef的用法

typedef常用來定義乙個識別符號及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配記憶體空間,例項像:

typedef

int int;

typedef

int array[10];

typedef (int*) pint;

typedef可以增強程式的可讀性,以及識別符號的靈活性,但它也有「非直觀性」等缺點。

#define的用法

#define為一巨集定義語句,通常用它來定義常量(包括無參量與帶參量),以及用來實現那些「表面似和善、背後一長串」的巨集,它本身並不在編譯過程中進行,而是在這之前(預處理過程)就已經完成了,但也因此難以發現潛在的錯誤及其它**維護問題,它的例項像:

#define   int             int

#define true 1

#define add(a,b) ((a)+(b));

#define loop_10 for (int i=0; i<10; i++)

typedef與#define的區別從以上的概念便也能基本清楚,typedef只是為了增加可讀性而為識別符號另起的新名稱(僅僅只是個別名),而#define原本在c中是為了定義常量,到了c++,const、enum、inline的出現使它也漸漸成為了起別名的工具。有時很容易搞不清楚與typedef兩者到底該用哪個好,如#define int int這樣的語句,用typedef一樣可以完成,用哪個好呢?我主張用typedef,因為在早期的許多c編譯器中這條語句是非法的,只是現今的編譯器又做了擴充。為了盡可能地相容,一般都遵循#define定義「可讀」的常量以及一些巨集語句的任務,而typedef則常用來定義關鍵字、冗長的型別的別名。

巨集定義只是簡單的字串代換(原地擴充套件),而typedef則不是原地擴充套件,它的新名字具有一定的封裝性,以致於新命名的識別符號具有更易定義變數的功能。請看上面第一大點**的第三行:

typedef (int*) pint;

以及下面這行:

#define    pint2    int*
效果相同?實則不同!實踐中見差別:pint a,b;的效果同int *a; int *b;表示定義了兩個整型指標變數。而pint2 a,b;的效果同int *a, b;表示定義了乙個整型指標變數a和整型變數b。

注意:兩者還有乙個行尾;號的區別,還有,就是它們書寫的位置相反,

搞搞吧的模式方式值得我們學習

今天在做comic的時候引用了其它 的資源,然後來到了這個 它提供的處理功能很簡單,使用者可以上傳素材上去,然後其它使用者都可以對這個加乙個bubble進行文字說明 的名字叫搞搞吧,處理就叫做搞,很玩味。簡單的瀏覽了一下,它的註冊使用者量還是不錯的,達到了52w,而且處於首頁的的使用者處理次數達到了...

一起學習程式設計吧

第一次寫部落格 我的程式設計之路 學習程式設計是個堅持而又長遠的路,合適的方法和習慣將讓你走的更平坦,下面就談談我的感想吧!1.目標 不管做什麼都會事先定乙個目標,程式設計也是得有自己的目標,比如以後想幹什麼,具體做什麼,想學哪門語言,程式語言有多種,不在乎多在於精,計算機語言都是相通的,精通一門語...

讓我們設計一門程式語言吧 3

4.解決問題的思路 為了解析資料檔案,我們需要設計一門程式語言,乙個該語言的執行時平台,它包括了乙個編譯器 檔案過濾器 簡單的資料庫儲存引擎,哦,很有挑戰性了。明知山有虎,偏向虎山行!讓我們分析一下好了 a 程式語言 sdt 為了設計好這門語言,我們該做什麼呢?那就是需要大量的資料樣本,從中進行抽象...