浮點資料和泛型表示式測試

2021-10-08 06:18:21 字數 1035 閱讀 2474

總結:

1.c規定float為4個位元組, 小數點後精度為6位 

2.c規定double占用8個位元組, 至少精確到小數點後13位    

3.long double在32位系統和64位系統中均占用16個位元組 

4.佔4位元組或者8位元組, 不同系統實現不同

5.bool型別在系統中其實是int型別

6.字元型資料其實在預編譯前被翻譯為整形數字

7.浮點型別預設為double 

8.浮點常量後面加l表示long double 

9.常量後面加ulf ulf的目的是:讓編譯器以unsigned int的方式儲存常量,下同 

#include #include #include // 泛型表示式(需要gcc 4.7以上版本, 編譯時加上-std=c11) 

#define generic(x) _generic((x), \

long double:"long double",\

bool:"bool",\

char:"char", \

int:"int", \

float:"float", \

double:"double", \

long int:"long int", \

long long int:"long long int", \

unsigned char:"unsigned char", \

unsigned int:"unsigned int", \

unsigned long int:"unsigned long int", \

unsigned long long int:"unsigned long long int",\

char *: "string",\

default:"undefined")

#define print_generic(x) printf("%s\n", generic(x))

int main(int argc, char *ar**)

支援浮點數的表示式求值

包含加減乘除,支援括號運算,以及簡單的非法表示式判斷 原理 只有當前操作符的優先順序高於操作符棧棧頂的操作符的優先順序,才入棧,否則彈出操作符以及運算元進行計算直至棧頂操作符的優先順序低於當前操作符,然後將當前操作符壓棧。當所有的操作符處理完畢 即操作符棧為空時 運算元棧中剩下的唯一乙個元素便是最終...

表示式樹和泛型委託

什麼是表示式樹?表示式樹又稱為表示式目錄樹,以資料形式表示語言級 所有的資料都儲存在樹結構中,每個結點表示乙個表示式 expression 要想手動生成表示式樹我們需要引用system.linq.expressions 命名空間,最重要的乙個類是expression,它是所有表示式的基類。例如 1 ...

泛型委託 Lambda表示式

發信人 joshuag 秦之魅 加菲 我懷念的 信區 dotnet 標 題 閃電,看這個,泛型委託 lambda表示式 發信站 武漢白雲黃鶴站 2008年01月21日15 46 01 星期一 站內信件 我覺得你給出的那個委託的第二個引數不需要用泛型,這樣 public delegate void g...