国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 2809|回復: 0
打印 上一主題 下一主題

C語言中的細節

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2017-3-29 15:59:42 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
1.1 “零值”比較

1.   寫出float x 與“零值”比較的if語句。

首先要知道float是有精度的,不能直接與0相比較或者兩數相減與0相比較。float能保留幾位小數?答案是6位。既然如此,那么就應該這么寫:

if((x > 0.000001) && (x < -0.000001)) 。

1.2      宏定義

1.   定義一個宏,返回X、Y中的較大值。

這個題目其實很簡單,但是在很多筆試中都會拿出來考試,并且出錯率很高,原因只有一個,忽略細節(優先級的問題,實在搞不明白就加括號吧,你好理解,別人一看也懂)。終究還是細節決定成敗。

#define   MAX( (X) , (Y) )    ((X) >= (Y) ? (X) : (Y))

2.   宏定義兩個數相加

請問如程序清單5. 1輸出什么?

程序清單5. 1  宏定義兩數相加

#define   DOUBLE(x) x+x

int main(int argc, char* argv[])

{

    int iNumber = 0 ;

    printf("%d\n" , 10*DOUBLE(10));

    return 0;

}

其實這個程序非常簡單,學習C語言一周就應該理解是什么意思,但是一般會出錯的的地方都在細節。其實這個程序輸出是110。

可能有人會問,不是10先DOUBLE嘛,然后乘以10,不是200嘛。是啊,想法是好的,我想這個程序的“原意”也應該是這樣,但是就是由于優先級的問題,打破了我們的愿望。如果要得到200,那么就應該是這樣宏定義:#define   DOUBLE(x) ((x)+(x))。我想,無論我加多少層括號都不算違法吧。

1.3      遞歸運算

1.         如程序清單5. 2所示,輸出什么?

程序清單5. 2  遞歸運算

#include

int func(int a)

{

    if (a==0)

    {

       return a;

    }

    printf("%d\n",func(a++/2));

    return a;

}

int main(int argc, char *argv[])

{

    printf("%d",func(7));

    return 0;

}

答案:0,2,4,8

這里把7送進去,那么func(a++/2),先執行7/2=3,然后a++ = 8,此時返回3;接著把3送進去,func(a++/2),先執行3/2=1,然后a++ = 4,此時返回1;接著把1送進去,func(a++/2),先執行1/2=0,然后a++ = 2,此時返回0;接著把0送進去,此時直接返回0,遞歸結束。

遞歸最容易忽略的細節是,由于遞歸次數過多,容易導致堆棧溢出。

1.4      讓人忽略的貪心法

1.         如程序清單5. 3所示,程序輸出什么?

程序清單5. 3  貪心法

int k = 8 ;

int i = 10 ;

int j = 10 ;

k *= i+++j ;

printf("%d \n" , k) ;

貪心法,就是一次性能盡可能多得吃運算符,那么這里k *= i+++j ,加上括號之后就是這樣:k = k * ((i++) + j) ;這樣的話就很簡單可以得出答案為:160。

1.5      性能優化

1.   對如程序清單5. 4所示進行性能優化,使得效率提高。

程序清單5. 4  性能優化

int iValue1;

int iValue2;

iValue1 = 1234/16;

iValue2 = 1234%32;

對于嵌入式進行除法是很消耗效率的,能使用移位完成最好使用移位完成。

iValue1 = 1234 >> 4;

iValue2 = 1234 – ((1234 >> 5) << 5);

1234 / 16 = 77; 1234 % 32 = 18。而十進制:1234轉化成二進制:0100 1101 0010。1234 >> 4 = 0000 0100 1101,轉化為十進制即為:77;1234 >> 5 = 0000 0010 0110,((1234 >> 5) << 5)即為0100 1100 0000,轉化為十進制即為:1120,1234 – 1216 = 18。



轉自網絡

                                                                                  深圳市菲利盟電子技術有限公司

640.webp.jpg (15.39 KB)

640.webp.jpg
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 最新在线观看精品国产福利片 | 色视频在线免费 | 国产日韩欧美视频 | 久久国产精品免费 | 精品视频99| 亚洲区在线 | 另类视频区第一页 | 亚洲精品视频免费看 | 亚洲欧美日韩国产综合高清 | 国内亚州视频在线观看 | 国产成人精品一区二三区 | 蜜臀首页 | 国产精品免费视频网站 | 亚洲自拍偷拍区 | 国产成人在线观看免费网站 | 国产最新自拍视频 | 99国产精品| 日本一区二区在线 | 亚洲一区在线免费 | 四虎影院永久地址 | 一级做a爰片性色毛片视频图片 | 99在线视频免费 | 国产91香蕉视频 | 在线观看色| 免费三级在线观看 | www.夜夜| 日日夜夜精品视频 | 四虎影视国产884a精品亚洲 | 国产日韩高清一区二区三区 | 大伊香蕉在线观看视频 wap | 中字毛片 | 九九久| 在线中文字幕一区 | 欧美日韩一区二区中文字幕视频 | 久国产| 在线精品视频在线观看高清 | 久久996国产精品免费 | 在线观看91精品国产hd | 亚洲最大的成人网 | 免费日韩视频 | 啦啦啦高清影视在线观看视频? |