Time of Update: 2018-12-03
作者:劉旭暉 colorant@163.com轉載請註明出處 http://blog.csdn.net/colorant/================================================malloc 和 calloccalloc會把分配出來的記憶體中的每一個位元組都初始化為0,
Time of Update: 2018-12-03
================================================C語言編譯分析記號,有一個原則是儘可能靠左合并符號使其得到符合文法的記號,所以a+++b 會被解釋為 (a++)+b 而不是
Time of Update: 2018-12-03
ANSI C標準中有幾個標準預定義宏:__FILE__ __DATE__ __TIME___ __LINE__ 等__LINE__:在原始碼中插入當前原始碼行號;__FILE__:在源檔案中插入當前源檔案名稱;__DATE__:在源檔案中插入當前的編譯日期__TIME__:在源檔案中插入當前編譯時間;__STDC__:當要求程式嚴格遵循ANSI
Time of Update: 2018-12-03
摘自:http://blog.csdn.net/uunubt/archive/2010/10/22/5958438.aspx 附:確實是,如果讓一個C/C++初學者去 vi/vim裡,真實太難為人家了!這裡介紹一個在linux的IDE。A GNOME devdlopement IDE for C/C++anjuta-1:2.30.2.1-1.fc13system:Fedora 13[lanux@localhost--~--13:26]$uname -srLinux 2.6.34.7-61.fc1
Time of Update: 2018-12-03
ks_sys.c 用來建立設定檔,主要配置:[HOST] [ IP] [ DHCP] [HCLONE] [PPPOE] [SWITCH]...... 把這個檔案反覆看了幾遍,因為要用到裡面的幾個檔案操作函數,試著分析了一下,能力有限,錯誤難免. static char *fconfig = "/tmp/sysconfig"; /* file name */ char
Time of Update: 2018-12-03
C語言中,數組是數組,指標是指標,兩者是完全不同的,通俗的話來說,一個是地址符號,一個是儲存變數地址的變數。 但是有時候他們又是可以相同的。 於是首先,我們應該知道兩者在什麼時候是“相似”的。1、“運算式中的數組”就是指標;2、C語言把數組下標作為指標的位移量;3、“作為函數參數的數組名”等同於指標;對數組的引用如a[i]在編譯時間總是被編譯器改寫成*(a+i)的形式。C語言之所以把數組形參轉換為指標是處於效率的考慮,由於不可能對整個數組進行拷貝,而是“所有的數組在作為參數傳遞時都轉化為指向數組
Time of Update: 2018-12-03
C語言測試:想C語言測試:想成為嵌入式程式員應知道的0x10個基本問題C語言測試是招聘嵌入式系統程式員過程中必須而且有效方法。這些年,我既參加也組織了許多這種測試,在這過程中我意識到這些測試能為帶面試者和被面試者提供許多有用資訊,此外,撇開面試的壓力不談,這種測試也是相當有趣的。從被面試者的角度來講,你能瞭解許多關於出題者或監考者的情況。這個測試只是出題者為顯示其對ANSI標準細節的知識而不是技術技巧而設計嗎?這個愚蠢的問題嗎?如要你答出某個字元的ASCII值。這些問題著重考察你的系統調用和記憶
Time of Update: 2018-12-03
去Intel面試的同學說面試官考了這個問題,一時真不知道,只好問度娘了。看來C的基礎還是很薄弱了,枉我還敢寫精通C語言。。。轉自:http://qin8.blog.163.com/blog/static/189699090200992034421125/C++中的const正常情況下是看成編譯期的常量,編譯器並不為const分配空間,只是在編譯的時候將期值儲存在名字表中,並在適當的時候摺合在代碼中.所以,以下代碼:#include <iostream>using namespace
Time of Update: 2018-12-03
轉自:http://www.newsmth.net/pc/pccon.php?id=10002714&nid=359712http://blog.csdn.net/Eric_Jo/article/details/4138548 const類型定義:指明變數或對象的值是不能被更新,引入目的是為了取代先行編譯指令 **************常量必須被初始化*************************cons的作用 (1)可以定義const常量 例如:
Time of Update: 2018-12-03
題外篇:單元測試難於長期堅持的原因與解決探討 上一篇《單元測試效益》,有網友評論說:“單元測試的好處基本人人知道,就是難堅持!”。這一評論嚴重提醒了我,不錯,“難堅持”也是一個普遍現狀。如果不能堅持,那一切都是白搭。因此,這裡插入一個題外篇,探討單元測試難於長期堅持的原因與解決,拋磚引玉,希望大家踴躍討論,共同找出使單元測試易以堅持的途徑。
Time of Update: 2018-12-03
附錄A:C程式員物件導向編程入門 Open Inventor是一個用於開發3D程式的物件導向工具包。它雖然是用C++開發的,但它同時還包含有C語言編程介面。這本書提到了許多像類、子類、和其它物件導向編程的概念。本書的所有例子都是用C++編寫的。如果在閱讀本書之前,讀者已經對“類”和物件導向的編程方法有了一定的瞭解,那麼您將可以從本書中學到儘可能多的東西(You will get the most from this book if you have a reasonable
Time of Update: 2018-12-03
1、 概述C語言是一種面向過程的程式設計語言,而C++是在C語言基礎上衍生來了的物件導向的語言,實際上,很多C++實現的底層是用C語言實現的,如在Visual C++中的Interface其實就是struct,尋找Interface的定義,你可以發現有這樣的宏定義:#ifndef Interface#define Interface
Time of Update: 2018-12-03
成員函數的重載(overload)、覆蓋(override)與隱藏很容易混淆,C++程式員必須要搞清楚概念,否則錯誤將防不勝防。1 重載與覆蓋成員函數被重載的特徵:(1)相同的範圍(在同一個類中);(2)函數名字相同;(3)參數不同;(4)virtual關鍵字可有可無。覆蓋是指衍生類別函數覆蓋基類函數,特徵是:(1)不同的範圍(分別位於衍生類別與基類);(2)函數名字相同;(3)參數相同;(4)基類函數必須有 virtual關鍵字。樣本 1中,函數 Base::f(int)與
Time of Update: 2018-12-03
如果需要在C#中接收系統螢幕鎖定/解鎖的事件,可以通過向 Microsoft.Win32.SystemEvents 類的 SessionSwitch 添加事件來實現。例如:Microsoft.Win32.SystemEvents.SessionSwitch += new Microsoft.Win32.SessionSwitchEventHandler(SystemEvents_SessionSwitch);void SystemEvents_SessionSwitch(object
Time of Update: 2018-12-03
(一)C++ inline函數在函式宣告或定義中函數傳回型別前加上關鍵字inline即把min()指定為內聯。inline int min(int first, int secend) {/****/};inline 函數對編譯器而言必須是可見的,以便它能夠在調用點內展開該函數。與非inline函數不同的是,inline函數必須在調用該函數的每個文字檔中定義。當然,對於同一程式的不同檔案,如果C++
Time of Update: 2018-12-03
1.2 單元測試的目標和方法 單元測試的目標是什麼呢?就是完整檢測代碼單元的功能邏輯。找出代碼單元本身的所有功能邏輯錯誤,具體來說,就是檢測對資料的各種分類是否考慮全面,處理是否正確。單元測試並不是用來代替系統測試、效能測試的,它的目標相當明確,就是檢測代碼單元本身的功能邏輯錯誤。 如果時間緊張,應該優先測試哪些代碼呢?代碼的功能邏輯越複雜,也就是演算法密集度越高,可能的錯誤越多,越需要全面的測試,測試效益越大。所以,如果時間不夠,應該優先測試演算法密集的代碼。80
Time of Update: 2018-12-03
第4章 怎樣才能保證測試效果? 4.1 衡量測試效果的基本指標:白盒覆蓋 衡量測試效果的基本指標是白盒覆蓋率,即統計測試對代碼邏輯單位的覆蓋狀況。代碼的邏輯單位主要有:語句(塊),條件、判定、分支、路徑。常用的白盒覆蓋有六種:語句覆蓋、條件覆蓋、分支覆蓋、判定條件覆蓋、修正判定條件覆蓋、和路徑覆蓋。每種覆蓋都有它的局限性,因此,實踐中要多種覆蓋組合應用。 除MC/DC外,其他覆蓋率的計算公式很簡單: 覆蓋率 = 已覆蓋邏輯單位元 / 全部邏輯單位元 * 100%,如:
Time of Update: 2018-12-03
3.2 高效率測試:四兩拔千斤 上一節介紹了一些似是而非的高效率方法,那麼,怎樣才能真正高效率測試呢?真正的高效率,不能忽略人的智慧這一關鍵因素。由於工具不可能自動瞭解代碼的設計功能,只有人才瞭解,因此,只有人的智慧及時介入,工具才能做正確的事情,才能達到真正的高效率。 測試的主要工作在於用例,這方面,工具可以完成大量自動化的工作,主要包括:產生測試代碼,產生測試案例,找出遺漏用例。 產生測試代碼
Time of Update: 2018-12-03
2.2 解決可測性問題 上一節具體分析了可測性問題,接下來,我們來看看如何解決這些問題。中,彩色的部分是需要解決的可測性的具體的問題。 與其他代碼隔離 為了提高效率,應該一次性將一位工程師負責的測試工作隔離出來。隔離時,應把源檔案分為三類:被測檔案,外圍檔案,其他檔案。被測檔案是測試目標,外圍檔案是指與被測檔案關聯密切的底層或相關檔案,這些在測試時最好直接調用實際代碼,減少打樁造成的失真,其他檔案則完全隔離。
Time of Update: 2018-12-03
2.1 可測性問題詳解(2) 接下來我們討論重點問題:覆蓋輸入。一個函數,輸入會有哪些呢?輸入包括兩方面:外部輸入,內部輸入。外部輸入容易理解,就是函數外部可以設定的輸入,包括參數,全域變數,成員變數。