c语言中一些花里胡哨的写法

转自:嵌入式linux
我觉得这是一个送分题,奈何知乎人才太多了,给出了各种古怪的写法,如果是做项目的话,我比骄建议一些正常的写法,就是大家都能看得懂的,不要搞什么花里胡哨,不过你要是交流的话,既然是交流,我不觉得要多正规,即使你的观点有问题,我觉得也可以拿出来说说,毕竟是交流,各抒己见,发表自己的观点是最重要的。
---- 为什么不建议大家花里胡哨
我觉得花里胡哨之前首先是你基础非常好了再去花里胡哨,不要自己很多基础的东西还搞不清楚就去花里胡哨。
---- 看这个代码,题外话
看看基础搞不明白的杀伤有多大。
voidstart_f(intfirst_start) { chartime_buf[512]; charbuf[512]; if(!first_start) { sprintf(time_buf,%s,get_time()); intlen=strlen(time_buf); time_buf[len-1]=0; printf(time_buf:%s ,time_buf); } }
这个是在网上看到的一个代码,比较典型的基础不牢靠,对strlen 理解不够。
常规解题代码
我觉得对于这个题目,使用for是非常常规的思考方式,所以我看了所有的回答之后,写了一个常规的代码。
---- 代码如下
#includestdio.h voidmain(void) { inti=0; for(i=1;i=1;i--) { printf(%d,i); } }
---- 代码输出
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100999897969594939291908988878685848382818079787776757473727170696867666564636261605958575655545352515049484746454443424140393837363534333231302928272625242322212019181716151413121110987654321 -------------------------------- processexitedafter0.04664secondswithreturnvalue2 请按任意键继续...
---- 为什么是 void main ,而不是int main ,题外话
这个是一个知乎留言提到的,很多人也对这个有疑惑,main 的写法有几种,有的被认为是正规的,有的被认为是不正规的。
main是一个函数,既然是一个函数,就遵从函数的规则就好。
所以,这样写输出并没有什么问题
#include char*main() { printf(hhh ); return(char*)null; }
我们还要知道比较常见的几种
intmain(intargc,char**argv){} intmain(intargc,char*argv[]){} intmain(void){}
---对于返回值的认知
main 函数是被操作系统调用的,既然是被操作系统调用的,操作系统会判断函数的返回值,通过返回值来判断程序是否正确运行,所以main函数的返回值是有意义的,我示例中的写法并不规范。
对main的解读
比较玄乎的写法
#includestdio.h voidfun(intn) { if(nfun(2) --->fun(3) ........ ---->fun(99)
---- 把上面的代码修改下
#includestdio.h voidfun(intn) { if(n<100) { printf(fun(%d),n); fun(n+1); } printf(fun(%d),n); } intmain(void) { fun(1); return0; }
---- 代码输出
fun(1)fun(2)fun(3)fun(4)fun(5)fun(6)fun(7)fun(8)fun(9)fun(10)fun(11)fun(12)fun(13)fun(14)fun(15)fun(16)fun(17)fun(18)fun(19)fun(20)fun(21)fun(22)fun(23)fun(24)fun(25)fun(26)fun(27)fun(28)fun(29)fun(30)fun(31)fun(32)fun(33)fun(34)fun(35)fun(36)fun(37)fun(38)fun(39)fun(40)fun(41)fun(42)fun(43)fun(44)fun(45)fun(46)fun(47)fun(48)fun(49)fun(50)fun(51)fun(52)fun(53)fun(54)fun(55)fun(56)fun(57)fun(58)fun(59)fun(60)fun(61)fun(62)fun(63)fun(64)fun(65)fun(66)fun(67)fun(68)fun(69)fun(70)fun(71)fun(72)fun(73)fun(74)fun(75)fun(76)fun(77)fun(78)fun(79)fun(80)fun(81)fun(82)fun(83)fun(84)fun(85)fun(86)fun(87)fun(88)fun(89)fun(90)fun(91)fun(92)fun(93)fun(94)fun(95)fun(96)fun(97)fun(98)fun(99)fun(100)fun(99)fun(98)fun(97)fun(96)fun(95)fun(94)fun(93)fun(92)fun(91)fun(90)fun(89)fun(88)fun(87)fun(86)fun(85)fun(84)fun(83)fun(82)fun(81)fun(80)fun(79)fun(78)fun(77)fun(76)fun(75)fun(74)fun(73)fun(72)fun(71)fun(70)fun(69)fun(68)fun(67)fun(66)fun(65)fun(64)fun(63)fun(62)fun(61)fun(60)fun(59)fun(58)fun(57)fun(56)fun(55)fun(54)fun(53)fun(52)fun(51)fun(50)fun(49)fun(48)fun(47)fun(46)fun(45)fun(44)fun(43)fun(42)fun(41)fun(40)fun(39)fun(38)fun(37)fun(36)fun(35)fun(34)fun(33)fun(32)fun(31)fun(30)fun(29)fun(28)fun(27)fun(26)fun(25)fun(24)fun(23)fun(22)fun(21)fun(20)fun(19)fun(18)fun(17)fun(16)fun(15)fun(14)fun(13)fun(12)fun(11)fun(10)fun(9)fun(8)fun(7)fun(6)fun(5)fun(4)fun(3)fun(2)fun(1)
重点在于只有if 判断为假后,才结束递归,但是递归不能无限大,太大了会撑爆栈空间的哦
递归的文章
c 语言,你真的懂递归了吗?
比如这样
再看看一个高赞的奇葩写法
#include intmain(){ printf(1); printf(); printf(2); printf(); printf(3); printf(); printf(4); printf(); printf(5); printf(); printf(6); printf(); printf(7); printf(); printf(8); printf(); printf(9); printf(); printf(10); printf(); printf(11); printf(); printf(12); printf(); printf(13); printf(); printf(14); printf(); printf(15); printf(); printf(16); printf(); printf(17); printf(); printf(18); printf(); printf(19); printf(); printf(20); printf(); printf(21); printf(); printf(22); printf(); printf(23); printf(); printf(24); printf(); printf(25); printf(); printf(26); printf(); printf(27); printf(); printf(28); printf(); printf(29); printf(); printf(30); printf(); printf(31); printf(); printf(32); printf(); printf(33); printf(); printf(34); printf(); printf(35); printf(); printf(36); printf(); printf(37); printf(); printf(38); printf(); printf(39); printf(); printf(40); printf(); printf(41); printf(); printf(42); printf(); printf(43); printf(); printf(44); printf(); printf(45); printf(); printf(46); printf(); printf(47); printf(); printf(48); printf(); printf(49); printf(); printf(50); printf(); printf(51); printf(); printf(52); printf(); printf(53); printf(); printf(54); printf(); printf(55); printf(); printf(56); printf(); printf(57); printf(); printf(58); printf(); printf(59); printf(); printf(60); printf(); printf(61); printf(); printf(62); printf(); printf(63); printf(); printf(64); printf(); printf(65); printf(); printf(66); printf(); printf(67); printf(); printf(68); printf(); printf(69); printf(); printf(70); printf(); printf(71); printf(); printf(72); printf(); printf(73); printf(); printf(74); printf(); printf(75); printf(); printf(76); printf(); printf(77); printf(); printf(78); printf(); printf(79); printf(); printf(80); printf(); printf(81); printf(); printf(82); printf(); printf(83); printf(); printf(84); printf(); printf(85); printf(); printf(86); printf(); printf(87); printf(); printf(88); printf(); printf(89); printf(); printf(90); printf(); printf(91); printf(); printf(92); printf(); printf(93); printf(); printf(94); printf(); printf(95); printf(); printf(96); printf(); printf(97); printf(); printf(98); printf(); printf(99); printf(); printf(100); printf(); printf(99); printf(); printf(98); printf(); printf(97); printf(); printf(96); printf(); printf(95); printf(); printf(94); printf(); printf(93); printf(); printf(92); printf(); printf(91); printf(); printf(90); printf(); printf(89); printf(); printf(88); printf(); printf(87); printf(); printf(86); printf(); printf(85); printf(); printf(84); printf(); printf(83); printf(); printf(82); printf(); printf(81); printf(); printf(80); printf(); printf(79); printf(); printf(78); printf(); printf(77); printf(); printf(76); printf(); printf(75); printf(); printf(74); printf(); printf(73); printf(); printf(72); printf(); printf(71); printf(); printf(70); printf(); printf(69); printf(); printf(68); printf(); printf(67); printf(); printf(66); printf(); printf(65); printf(); printf(64); printf(); printf(63); printf(); printf(62); printf(); printf(61); printf(); printf(60); printf(); printf(59); printf(); printf(58); printf(); printf(57); printf(); printf(56); printf(); printf(55); printf(); printf(54); printf(); printf(53); printf(); printf(52); printf(); printf(51); printf(); printf(50); printf(); printf(49); printf(); printf(48); printf(); printf(47); printf(); printf(46); printf(); printf(45); printf(); printf(44); printf(); printf(43); printf(); printf(42); printf(); printf(41); printf(); printf(40); printf(); printf(39); printf(); printf(38); printf(); printf(37); printf(); printf(36); printf(); printf(35); printf(); printf(34); printf(); printf(33); printf(); printf(32); printf(); printf(31); printf(); printf(30); printf(); printf(29); printf(); printf(28); printf(); printf(27); printf(); printf(26); printf(); printf(25); printf(); printf(24); printf(); printf(23); printf(); printf(22); printf(); printf(21); printf(); printf(20); printf(); printf(19); printf(); printf(18); printf(); printf(17); printf(); printf(16); printf(); printf(15); printf(); printf(14); printf(); printf(13); printf(); printf(12); printf(); printf(11); printf(); printf(10); printf(); printf(9); printf(); printf(8); printf(); printf(7); printf(); printf(6); printf(); printf(5); printf(); printf(4); printf(); printf(3); printf(); printf(2); printf(); printf(1); printf(); return0; }
原文标题:c语言各种古怪的写法
文章出处:【微信公众号:strongerhuang】欢迎添加关注!文章转载请注明出处。


Copley高性能工业伺服驱动器制造者,为客户提供运动控制方案
双层PCB板制作过程与工艺
无线测温系统,消除电力开关柜设备发热故障
台电科技联合长江存储发布固态硬盘腾龙DS10
微控制器的定义以及微控制器在一个产品设计中的主要用途
c语言中一些花里胡哨的写法
雾霾对户外LED电子显示屏的考验
苹果iOS 14.5更新:强制要求App请求追踪用户许可权限
2019年语音业务运营商必须重新拾起来
PCB贴片焊点的质量标准
物联网可以为资产管理带来什么好处
联想乐檬K12 Pro发布:首发价899起
关于LCD黑白液晶屏,它的屏显示方式一般有哪些
为什么加密货币和区块链行业需要保险
联发科11月芯片出货量预计1500万 环比降15%
区块链技术可以改善人工智能的发展吗
美团技术沙龙:智能硬件技术在美团的应用实践
一文看懂电磁感应定律右手定则
小米MIUI9最新消息:MIUI9较MIUI8大升级,小米MIUI9流畅度对比华为EMUI你怎么看?
关注自由和开源软件