C语言的爱你永不悔
#前言
今天是520節,昨天晚上睡覺的時候,我家地瓜一直說520,520,我不知道要干啥,我就說,要睡就睡,不睡就起來。今天我看了朋友圈,我才知道原來520就是「我愛你」的意思。今天在朋友圈看到的一個小代碼,我覺得特別有意思,然后我就轉發了下,好多好多同學在下面留言。其中也有討論了技術的問題,所以我就總結下發出來。
#代碼,愛你永不悔
#include <stdio.h> #define uint8 unsigned charint main() {uint8 love=0,day=1;while(love<= 365){love += day;}return (0); }這個代碼很有意思,如果你運行了,是永遠達不到return的位置的,我在朋友圈寫的含義是,愛你直到電腦死機,然后有一個同學留言說,應該是愛你永不返回「反悔」,這個解釋特別貼切。
#代碼,我的愛不能清零
#include <stdio.h> #define uint long long unsignedint main() {uint love=0,day=1;while(love >= 0){love += day;}return (0); }我們看看long long unsigned 大小
#include <stdio.h> #include <math.h> #define uint long long unsignedint main() {uint love=0,day=1;printf("%d %f\n",sizeof(uint),pow(2,sizeof(uint)*8) -1);return (0); }#這代碼會不會導致電腦死機
電腦有操作系統,肯定不會死機,但是因為while里面沒有sleep,操作系統在調度的時候,程序一直占用cpu,會導致cpu占用率比較高。
如果是單片機的話,就只有一個程序,這樣的話,其他程序就用不了了。
#如果一直申請內存呢?會不會導致電腦掛機?
理論分析下,Android下都會由Lowmomerykiller,電腦也應該會有吧?所以你覺得應該不會死機?我寫了兩個小程序。
#include <stdio.h> #include <math.h> #include <string.h> #define uint long long unsignedint main() {uint love=0,day=1;printf("%d %f\n",sizeof(uint),pow(2,sizeof(uint)*8) -1);while(love >= 0){love += day;malloc(love);}return (0); }這個會死機的哦~
#include <stdio.h> #include <math.h> #include <string.h> #define uint long long unsignedint main() {uint love=0,day=1;printf("%d %f\n",sizeof(uint),pow(2,sizeof(uint)*8) -1);while(love >= 0){love += day;malloc(day);}return (0); }這個等比較久,因為申請的比較小,操作系統還能反應,所以我等了很久都沒事。大家可以自己試試~
也可以評論說出自己的看法~
===========
??
PS:想加入技術群的同學,加了我好友后,就給我發「籃球的大肚子」這句話,有可能機器人打瞌睡,可以多發幾次,不要發與技術無關的消息或者推廣。
如果想獲取學習資料,就在公眾號后臺回復「1024」,足夠多的學習資料可以讓你學習。
總結
- 上一篇: 老罗直播——只要给你一个机会,你就伸双手
- 下一篇: Activiti6快速入门指南