在c語言的世界裡存在乙個關於結構體的偏門技巧,例如:
struct
_str_type
str_type;
str_type用於儲存字串(我只是舉例,事實上這個結構體沒什麼用處),乍看上去str_type只能儲存長度為
1的字串('/0')。但是,通過寫下如下的**,你將突破這個限制:
str_len =5
;=(str_type
*) malloc(
sizeof
( str_type )
+str_len -1
);//
free( s );
這個技巧原理很簡單,因為_s恰好在結構體尾部,所以可以為其分配一段連續的空間,只要注意指標的使用,
這個就算不上**上的罪惡。但是這個技巧有個限制,str_type定義的變數必須是被分配在堆上,否則會破
壞堆疊。另外,需要動態增長的成員需要位於結構體的末尾。最後,乙個忠告就是,這個是c語言裡的技巧,
如果你的結構體包含了c++的東西,這個技巧將不再安全()。
C語言中的小技巧
看看下面一段程式的功能 testrcunit.cpp 定義控制台應用程式的入口點。include typedef void cunit test case func type brief 測試用例鍊錶結點。儲存測試用例的函式指標和測試用例的名字。typedef struct tagcunittest...
C語言的小演算法技巧
以下是收集的,並且自己用到過的小技巧集錦,寫這個主要是因為,長時間不接觸,忘記了很多的小技巧了,等到自己再去使用的時候。天哪,就是折磨人。所以,從這個post裡就開始收集下小 技巧 或者 小演算法 但是,都是很些很簡單的東西,也會有複雜的東西。我們都知道aes加密的過程中需要對進行列混合的運算。在程...
C語言迴圈小技巧
寫 有兩類追求,一種是追求實用 coder 一種是追求 藝術 artist 我是那種追實用追膩了,偶然追一下藝術 就是偶然和藝術有一腿 的那種coder 很多人,已經習慣了for i 0 i n 又或者,有的人知道平方根的優化 int isprime int n 再或者,消除偶數 int ispri...