在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ C/ 練習1:啟用編譯器
練習9:數(shù)組和字符串
練習6:變量類型
練習3:格式化輸出
練習4:Valgrind 介紹
練習28:Makefile 進階
練習14:編寫并使用函數(shù)
練習21:高級數(shù)據(jù)類型和控制結(jié)構(gòu)
練習20:Zed的強大的調(diào)試宏
練習18:函數(shù)指針
練習0:準備
練習15:指針,可怕的指針
練習27:創(chuàng)造性和防御性編程
練習22:棧、作用域和全局
練習10:字符串數(shù)組和循環(huán)
練習8:大小和數(shù)組
練習16:結(jié)構(gòu)體和指向它們的指針
練習7:更多變量和一些算術(shù)
練習23:認識達夫設(shè)備
練習12:If,Else If,Else
練習2:用Make來代替Python
練習1:啟用編譯器
練習11:While循環(huán)和布爾表達式
練習5:一個C程序的結(jié)構(gòu)
練習24:輸入輸出和文件
練習25:變參函數(shù)
練習13:Switch語句
練習19:一個簡單的對象系統(tǒng)
練習26:編寫第一個真正的程序
導言:C的笛卡爾之夢
練習17:堆和棧的內(nèi)存分配

練習1:啟用編譯器

這是你用C寫的第一個簡單的程序:

int main(int argc, char *argv[])
{
    puts("Hello world.");

    return 0;
}

把它寫進 ex1.c 并輸入:

$ make ex1
cc     ex1.c   -o ex1

你的編譯器可能會使用一個有些不同的命令,但是最后應該會產(chǎn)生一個名為ex1的文件,并且你可以運行它。

你會看到什么

現(xiàn)在你可以運行程序并看到輸出。

$ ./ex1
Hello world.

如果沒有,則需要返回去修復它。

如何使它崩潰

在這本書中我會添加一個小節(jié),關(guān)于如何使程序崩潰。我會讓你對程序做一些奇怪的事情,以奇怪的方式運行,或者修改代碼,以便讓你看到崩潰和編譯器錯誤。

對于這個程序,打開所有編譯警告重新構(gòu)建它:

$ rm ex1
$ CFLAGS="-Wall" make ex1
cc -Wall    ex1.c   -o ex1
ex1.c: In function 'main':
ex1.c:3: warning: implicit declaration of function 'puts'
$ ./ex1
Hello world.
$

現(xiàn)在你會得到一個警告,說puts函數(shù)是隱式聲明的。C語言的編譯器很智能,它能夠理解你想要什么。但是如果可以的話,你應該去除所有編譯器警告。把下面一行添加到ex1.c文件的最上面,之后重新編譯來去除它:

#include <stdio.h>

現(xiàn)在像剛才一樣重新執(zhí)行make命令,你會看到所有警告都消失了。

附加題

  • 在你的文本編輯器中打開ex1文件,隨機修改或刪除一部分,之后運行它看看發(fā)生了什么。
  • 再多打印5行文本或者其它比"Hello world."更復雜的東西。
  • 執(zhí)行man 3 puts來閱讀這個函數(shù)和其它函數(shù)的文檔。