gcc編譯命令—-小話c語言(14)

[Mac 10.7.1  Lion  Intel-based  x64  gcc 4.2.1]Q: 如何讓編譯的檔案可以被gdb調試?A: 可以加入-g參數。如下代碼,儲存為hello.c: #include <stdio.h>int main(){ printf("hello world!\n"); return 0;}編譯 gcc  hello.c  -o  hello得到hello.使用  gdb

結構體,物件導向的基礎—-小話c語言(11)

[Mac-10.7.1  Lion  Intel-based  x64  gcc4.2.1]Q: 結構體的本質是什嗎?A: 結構體就像一種粘合劑,將事物之間的關係很好地組合在了一起。Q: 結構體對象中各個變數的記憶體儲存位置和內建基本類型變數的儲存有什麼區別?A: 簡單地說,它們沒區別;複雜地說,它們有區別。簡單在於它們終究會儲存在記憶體中,複雜地說它們的位置可能有一些不同。如下:#include <stdio.h>#include <string.h>#define

遞迴,到處都是遞迴—-小話c語言(10)

[Mac 10.7.1  Lion  Intel-based  x64  gcc4.2.1]Q: 遞迴的本質是什嗎?A: 遞迴能夠運行,在於宇宙萬物之間的聯絡和電腦最終指令的完備性。換句話說,如果一個公式的參數不能和參數相關的公式有聯絡,那麼遞迴對它無解。Q: 舉些例子說明遞迴的無處不在吧。A: 比如需要計算一個數組中最大的數值。int find_max(int arr[], int

gdb調試命令—-小話c語言(15)

[Mac-10.7.1  Lion  Intel-based  x64  gcc4.2.1  GNU gdb 6.3.50-20050815 (Apple version gdb-1708)]Q: 給個簡單的代碼,然後進入調試狀態。A: 如下代碼,儲存為hello.c:#include <stdio.h>int main(){ int i = 2; printf("%d\n", i); return 0;}gcc編譯,需要有-g參數:gcc  -g

從小函數和小類看大設計—-小話c++(4)

[Mac 10.7.1  Lion  Intel-based  x64  gcc4.2.1  xcode4.2]大道理大家都會說,因為書上到處都會寫。不喜歡講大道理,道理自在真實的事實中。Q: 如果需要提供一個計算兩個元素較大值的模組,該提供什麼樣的代碼?A: 當然,不能輕易將元素認為是整形,這樣可能導致很多時候無法使用。既然如此,模板成為一種很好地選擇。Q: 就類似如下代碼嗎?template<class T>T max(T a, T b){ return a >

開發實用命令和工具—-小話c語言(16)

[Mac 10.7.1  Lion  Intel-based  x64

指標,溫柔又危險—-小話c語言(7)

[Mac-10.7.1 Lion Intel-based, gcc 4.2.1]Q: 指標到底是什嗎?A: 有一天,你初到合肥,要到一個地方,但是路線不熟悉。遂問了一個路人,請問烏邦托在哪裡?路人答曰:向南走即可。這個回答就像指標一樣,告訴你一個方向。但是,到底向南多少,這就像是指標類型決定的大小。Q: 看到那個const修飾指標的時候,老是搞不清楚到底是指標是常量還是指標指向的變數是常量?A: 其實很簡單,採用從右向左的讀法即可搞定這些。如下例子:#include

詞法分析,讓狀態機器旋轉地更猛烈些吧—-小話c語言(21)

作者:陳曦日期:2012-6-16 10:21:31 環境:[Mac 10.7.1 Lion Intel-based x64 gcc4.2.1 xcode4.2] 轉載請註明出處Q: 對於編譯過程的詞法分析,到底應該使用什麼方式?A: 可以肯定的是,必然要對需要處理的資料挨個字元判斷,然後在恰當的位置截斷,得到一個個的token.Q: 為什麼得挨個字元都判斷?A: 因為編碼採用原始碼的方式,你無法判斷程式員下一個字元是什麼。比如int

c庫(下)—-小話c語言(18)

[Mac  10.7.1  Lion  Intel-based  x64  gcc4.2.1  xcode4.2  ]Q: 如何解決abs函數傳入一個整形數最小值返回溢出的數?#include <stdio.h>#include <stdlib.h>#include <string.h>#include <limits.h>#define PRINT_D(intValue) printf(#intValue" is %d\n",

當寫C語言寫多了,自然就喜歡C++了—-小話c++(1)

[Mac  10.7.1  Lion  x64  Intel-based  gcc4.2.1  xcode4.2]Q: 解釋下標題吧。A: 依稀記得,寫一個數值絕對值的函數時,寫到第三個,實在感覺很痛苦,重複了這麼多遍,立刻體會了重載和STL的重要意義。intabs(int n){ return n < 0 ? -n : n;}longabs_long(long n){ return n < 0 ? -n : n;}doubleabs_double(double n){

輸入輸出資料流,看似複雜卻更好用—-小話c++(2)

[Mac 10.7.1  Lion  Intel-based  x64  gcc4.2.1  xcode4.2]Q: c++的預設輸入輸出和c的有什麼優缺點?A: 任何一種語言都會有自身最推薦的一套模式,因為設計者可能已經很認真考慮了。沒有必要說哪種最好,哪種很差,最好和很差都有條件限制的。不同的使用者總能找到一種最適合自身的方式。   

預先處理,它有時很神奇—-小話c語言(24)

作者:陳曦日期:2012-7-28  18:19:55環境:[Mac 10.7.1 Lion Intel i3 支援64位指令 gcc4.2.1 xcode4.2]  轉載請註明出處Q1: 宏這個東西真是很奇怪,為什麼我想將一句#include代碼用宏來替換,卻不行?#define INCLUDE_STDIO #include<stdio.h>INCLUDE_STDIOint main(){ return 0;}儲存為preprocess_header.cA:

異常處理,保證代碼穩定的必經之步—-小話c語言(12)

[Mac 10.7.1 Lion  Intel-based  x64  gcc4.2.1]Q: c語言的異常處理可以使用什嗎?A: 可以使用setjmp和longjmp的組合。一個是儲存處理異常前執行的環境,一個是調回原來執行的環境。int setjmp(jmp_buf env);參數env的類型jmp_buf定義如下:/* * _JBLEN is number of ints required to save the following: * eax, ebx, ecx, edx, edi,

不喜歡用const的程式員不是好程式員—-小話c++(3)

[Mac 10.7.1  Lion  Intel-based  x64  gcc4.2.1  xcode4.2]Q: c語言中的const和c++中的const關鍵字的含義是一樣的嗎?A: 不盡相同; c語言中const修飾的變數是不可更改的變數,它的核心還是變數;但是c++中const修飾的就是一個常量。比如,在c語言中使用const修飾的一個變數就不可以作為不可變長數組的元素個數,而c++就可以。Q:

new內部在做些什麼—-小話c++(6)

[Mac  10.7.1  Lion Intel-based  x64  gcc4.2.1  xcode4.2]Q: new操作符構造一個對象,它內部究竟調用了什嗎?A: 如下代碼:#include <iostream>using namespace std;#define COUT_ENDL(str) std::cout << #str << " is " << (str) << std::endl;class

可執行檔內部的秘密—-小話c語言(22)

作者:陳曦日期:2012-6-23   14:24:27環境:[Mac 10.7.1 Lion Intel i3 支援64位指令 gcc4.2.1 xcode4.2]  轉載請註明出處Q1: 編譯產生的可執行檔內部是如何被執行的?A: 當然,首先需要知道它的結構。先編寫一個簡單的程式,儲存為testForC.c:#include <stdio.h>#include <string.h>#define PRINT_D(longValue)

printf函數,能不能簡單點?—-小話c語言(2)

    開頭語    上面一篇已經寫過,c語言不僅僅只是文法很好玩,很讓人捉摸不透,它的思想更是深奧,需要慢慢體會的。看了關於c語言的書籍不少於50本,每看一遍都感覺認識深了一點,但是終究還是無法完全理解它背後最深層的思想,只是在不斷地向它走近。正因為如此,下面的描述不會按照一個固定的說明文格式來編寫,而是採用對話的方式來將這個過程展現出來,這樣應該能更多地展示出c語言的思想。    格式: 問題(Question)將以 Q: 開頭,  回答(Answer)將以  A: 作為開頭。 Q:

c庫(上)—-小話c語言(17)

[Win7  vs2010]Q:

彙編和c只有一步之近—-小話c語言(19)

作者:陳曦日期:2012-6-8 10:50:13環境:[Ubuntu 11.04  Intel-based x64 gcc4.5.2  CodeBlocks10.05  AT&T彙編  Intel彙編] 轉載請註明出處Q: 舉個例子吧。A: 下面的代碼的目標是計算1+2的值,最後放到變數temp中,並輸出:#include <stdio.h>#include <string.h>#define PRINT_D(longValue)

要理解解譯器,做一個小解譯器—-小話c語言(20)

作者:陳曦日期:2012-6-12   11:31:12環境:[Mac 10.7.1  Lion  Intel-based  x64  gcc4.2.1  xcode4.2]  轉載請註明出處Q: 解譯器來源於什嗎?A: 如果說是廣義的解譯器,那麼可以把它理解成翻譯器,只要能將一種被看成原始的東西翻譯成需要的東西,處理的東西就可以被稱為解譯器。從程式設計語言角度,解譯器更多地表達的含義是,將一種初始狀態的資料(一般是文本)轉換成另外一種通常來說是較為容易理解的文本或者一種執行過程。   

總頁數: 4314 1 .... 1471 1472 1473 1474 1475 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.