一些巨集的寫法

2021-06-29 00:05:57 字數 621 閱讀 7593

1.宣告乙個常數用以表示1年中有多少秒(忽略閏年問題)

#define seconds_per_year (60*60*24*365)ul

2.返回兩個數的較大數(不能使用大於、小於、if語句)

#define max(a, b) ((abs((a)-(b)))==((a)-(b))?(a):(b))

3.返回兩個數的較小數

#define min(a, b) ((a)<(b)?(a):(b))

4.在巨集中把引數解釋為字串

#define trace(s) printf("%s\n", #s)

5.不使用sizeof求int占用的位元組數

#define my_sizeof(value) ((char *)(&value+1)-(char *)&value)

6.用sizeof求陣列中元素的個數

#define count(array) (sizeof(array)/sizeof(array[0]))

7.求乙個結構體a裡某個變數相對a的偏移量

#define find(struct_, member) (unsigned int)&(((struct_ *)0)->member)

JS原生的一些寫法

今天在寫頁面的時候,因為不想使用jquery了,所以想用原生js寫一下,發現原生的js都差不多忘記了,所以來補習一下 slice 如果接收的是負數,會將它字串的長度與對應的負數相加,接收的是起始位置和結束位置 不包括結束位置 substring 以兩個引數中較小乙個作為起始位置,較大的引數作為結束位...

關於巨集的一些說明

巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集展開 將巨集名替換為字串。掌握 巨集 概念的關鍵是 替換 一切以替換為前提。預處理器是先於編譯器執行的 例 define pi 3.14 ...

關於platform driver的一些巨集知識

我在寫platform驅動的時候參考了一些linux已有的platform driver 發現了一些我不知道的知識點在這裡和大家分享一下。一 巨集module platform driver 在platform device.h 中定義 我們繼續追蹤 module driver,在device.h中...