Time of Update: 2018-12-04
C語言測試是招聘嵌入式系統程式員過程中必須而且有效方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能為帶面試者和被面試者提供許多有用資訊,此外,撇開面試的壓力不談,這種測試也是相當有趣的。從被面試者的角度來講,你能瞭解許多關於出題者或監考者的情況。這個測試只是出題者為顯示其對ANSI標準細節的知識而不是技術技巧而設計嗎?這個愚蠢的問題嗎?如要你答出某個字元的ASCII值。這些問題著重考察你的系統調用和記憶體配置策略方面的能力嗎?這標誌著出題者也許花時間在微機上而不上在嵌入式
Time of Update: 2018-12-04
C面試時的讀程式題ZZ shury 發表於 2004-12-5 17:50:00 What will print out? main() { char *p1=“name”; char *p2; p2=(char*)malloc(20); memset (p2, 0, 20); while(*p2++ = *p1++); printf(“%sn”,p2); } Answer:empty string.
Time of Update: 2018-12-04
windows編程宏展開此前寫過一篇關於宏的文章:宏使用之預先處理操作符總結,在這裡詳細介紹了Windows整合式開發環境下(IDE)如何進行宏展開,linux編程宏展開使用gcc,g++編譯器編譯,使用編譯器的-P選項,假設有源檔案a.cpp,使用以下命令進行宏展開,你就可以在a.prescan檔案中看到效果了。$g++ -E -P a.cpp > a.prescan
Time of Update: 2018-12-04
C語言中的帶參數宏一.帶參數的宏1.帶參數的宏定義不是簡單的字串替換,還要進行參數替換定義格式為:#define 宏名(參數表) 字串1>字串包含括弧中所有指定的參數eg: #define S(a,b) ((a)*(b))
Time of Update: 2018-12-04
1、盡量使用const來代替宏定義,因為宏定義無類型檢查。2、 對於複雜的物件類型,益採用const &的類型傳遞參數來避免對構造和解構函式的調用提高效率。3、成員函數被重載的特徵:(1)相同的範圍(在同一個類中);(2)函數名字相同;(3)參數不同;(4)virtual
Time of Update: 2018-12-04
C面試時的讀程式題ZZ shury 發表於 2004-12-5 17:50:00 What will print out? main() { char *p1=“name”; char *p2; p2=(char*)malloc(20); memset (p2, 0, 20); while(*p2++ = *p1++); printf(“%sn”,p2); } Answer:empty string.
Time of Update: 2018-12-04
#include "stdafx.h"#include <iostream>#include <string>using namespace std;template <class Type> class Queue;template <class Type> class QueueItem{public: friend class Queue<Type>; QueueItem(const Type
Time of Update: 2018-12-04
1. 枚舉的定義枚舉類型定義的一般形式為: enum 枚舉名{ 枚舉值表 };在枚舉值表中應羅列出所有可用值。這些值也稱為枚舉元素。例如: 該枚舉名為weekday,枚舉值共有7個,即一周中的七天。凡被說明為weekday類型變數的取值只能是七天中的某一天。2. 枚舉變數的說明如同結構和聯合一樣,枚舉變數也可用不同的方式說明,即先定義後說明,同時定義說明或直接說明。設有變數a,b,c被說明為上述的weekday,可採用下述任一種方式:enum weekday{
Time of Update: 2018-12-04
一、“right-left”規則看過《C專家編程》中的分析規則,用起來並不是很舒服,遂在網上尋找,發現還有一個著名的“right-left”規則。規則經翻譯總結後如下:“right-left”規則:0. 規則中符號 * 讀作 “指向...的指標” [] 讀作 “...的數組” () 讀作 “返回...的函數”1. 起始點 找到聲明中的標識符(Identifier),它就是你分析的起始點,讀作:“$(Identifier)是...”;2. 右邊 看你的標識符右邊 a) 如果發現“(
Time of Update: 2018-12-04
C/C++,預定義宏,__FILE__, __LINE__, __DATE__,__TIME__,__func__,__FUNCTION____FILE__:當前原始碼檔案名稱的字串文字__LINE__:當前原始碼中的行號的整數常量__DATE__:進行預先處理的日期(“Mmm dd
Time of Update: 2018-12-04
本文檔的Copyleft歸rosetta所有,使用GPL發布,可以自由拷貝、轉載,轉載時請保持文檔的完整性。參考資料:《Linux核心完全剖析》,《新版組合語言程式設計》,《Linux C編程一站式學習》 最近要改個C語言演算法的關鍵區段用組合語言實現,Linux裡嵌入彙編基本使用AT&T彙編,比如Linux系統的啟動部分用的就是AT&T彙編 。以前學過AT&T彙編,但學過一段時間就忘了,但對Intel彙編基礎比較熟悉,兩者使用方法基本相似,所以對著Intel彙編,
Time of Update: 2018-12-04
1,隱藏作用,講一個全域變數定義為靜態地,則該全域變數只在該源檔案中可見,這樣可以在不同源檔案中定義同名的全域變數2,保持,在函數中定義的變數定義為靜態地,則每一次調用該變數,即可擷取上一次該變數的值3,初始化為04,在模組內定義的static全域變數可以被模組內所以函數訪問,但不能被模組外函數訪問5,在模組內定義的static函數只能被該模組的函數調用6,類中的static變數屬於整個類,所有的對象只能有一個拷貝7,在類中的static成員函數屬於整個類,這個函數不能接受this指標,所以只能
Time of Update: 2018-12-04
11、結構與聯合有和區別?(1). 結構和聯合都是由多個不同的資料類型成員組成, 但在任何同一時刻, 聯合中只存放了一個被選中的成員(所有成員共用一塊地址空間), 而結構的所有成員都存在(不同成員的存放地址不同)。 (2). 對於聯合的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對於結構的不同成員賦值是互不影響的。12、試寫出程式結果:int a=4;int &f(int x){ a=a+x; return a;}int main(void
Time of Update: 2018-12-04
C extern關鍵字說明 ==> C與C++對函數名的處理是不一樣的,在C++中會對函數名編譯時間加一些修飾符用以區分函數的重載等問題 ==> C編譯的函數庫,C++中聲明與調用時,應指定extern“C”關鍵字,這樣保證C++在編譯時間仍然採用C的方式編譯函數名 ==> C++連結時就能找到正確的C函數 ==> extern“C”voidf(int a,char b);---引用C函數 ==>
Time of Update: 2018-12-04
一、定義.在物件導向的概念中,我們知道所有的對象都是通過類來描繪的,但是反過來卻不是這樣。並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的資訊來描繪一個具體的對象,這樣的類就是抽象類別。純虛函數是在基類中聲明的虛函數,它在基類中沒有定義,但要求任何衍生類別都要定義自己的實現方法。在基類中實現純虛函數的方法是在函數原型後加“=0”。virtual void
Time of Update: 2018-12-04
public修飾的成員變數 在程式的任何地方都可以被訪問,就是公開變數的意思,不需要通過成員函數就可以由類的執行個體直接存取private修飾的成員變數 只有類內可直接存取,私人的,類的執行個體要通過成員函數才可以訪問,這個可以起到資訊隱藏protected是受保護變數 類內和子類可直接存取,也就是說,基類中有protected成員,子類繼承於基類,那麼也可以訪問基類的protected成員,要是基類是private成員,則對於子類也是隱藏的,不可訪問
Time of Update: 2018-12-04
昨天參加愛立信筆試的時候遇到了這樣一個問題,就是解釋一下C++四種強制類型轉換的方法以及其應用場合,之前有看過這個知識點,但是,考試的時候怎麼想也就沒有寫的很全面,於是,這裡整理一下:C++中的四種強制類型轉換除了具有C語言強制類型轉換的功能外,還可提供更好的控制強制轉換的過程;能更清晰地表明程式員的意圖,程式員只有看到這樣的代碼,立即就能知道一個強制類型轉換的目的。 C風格的強制類型轉換(Type Cast)很簡單,不管什麼類型的轉換統統是: TYPE b = (TYPE)a,而C++風格的類
Time of Update: 2018-12-04
(1)第一個作用:隱藏。當我們同時編譯多個檔案時,所有未加static首碼的全域變數和函數都具有全域可見度。所有未加static首碼的全域變數和函數都具有全域可見度,其它的源檔案也能訪問。如果加了static,就會對其它源檔案隱藏。利用這一特性可以在不同的檔案中定義同名函數和同名變數,而不必擔心命名衝突。Static可以用作函數和變數的首碼,對於函數來講,static的作用僅限於隱藏,而對於變數,static還有下面兩個作用。(2)static的第二個作用是保持變數內容的持久。儲存在待用資料區的
Time of Update: 2018-12-04
const的轉載總結實在找不到串連,抱歉。。。看到const 關鍵字,C++程式員首先想到的可能是const 常量。這可不是良好的條件反射。如果只知道用const 定義常量,那麼相當於把火藥僅用於製作鞭炮。const 更大的魅力是它可以修飾函數的參數、傳回值,甚至函數的定義體。const 是constant 的縮寫,“恒定不變”的意思。被const 修飾的東西都受到強制保護,可以預防意外的變動,能提高程式的健壯性。所以很多C++程式設計書籍建議:“Use const whenever you
Time of Update: 2018-12-04
c++裡的類型轉換種類在c++裡包含4種,static_cast,dynamic_cast,const_cast,reinterpret_cast。4種類型reinterpret_cast: 強制類型轉換符,修改運算元類型,給出了對象的Bit模型,而沒有進行二進位轉化;慎用;static_const: 類層次之間父類和子類的轉換。父類的指標或是引用轉換到基類是安全的;反過來就不安全了。