linux内核编程风格.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:20 大小:48KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

linux内核编程风格.pdf

linux内核编程风格.pdf

预览

免费试读已结束,剩余 10 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

LinuxkernelcodingstyleThisisashortdocumentdescribingthepreferredcodingstyleforthelinuxkernel.Codingstyleisverypersonal,andIwon't_force_myviewsonanybody,butthisiswhatgoesforanythingthatIhavetobeabletomaintain,andI'dpreferitformostotherthingstoo.Pleaseatleastconsiderthepointsmadehere.Firstoff,I'dsuggestprintingoutacopyoftheGNUcodingstandards,andNOTreadit.Burnthem,it'sagreatsymbolicgesture.Anyway,heregoes:Chapter1:IndentationTabsare8characters,andthusindentationsarealso8characters.Therearehereticmovementsthattrytomakeindentations4(oreven2!)charactersdeep,andthatisakintotryingtodefinethevalueofPItobe3.Rationale:Thewholeideabehindindentationistoclearlydefinewhereablockofcontrolstartsandends.Especiallywhenyou'vebeenlookingatyourscreenfor20straighthours,you'llfinditaloteasiertoseehowtheindentationworksifyouhavelargeindentations.Now,somepeoplewillclaimthathaving8-characterindentationsmakesthecodemovetoofartotheright,andmakesithardtoreadona80-characterterminalscreen.Theanswertothatisthatifyouneedmorethan3levelsofindentation,you'rescrewedanyway,andshouldfixyourprogram.Inshort,8-charindentsmakethingseasiertoread,andhavetheaddedbenefitofwarningyouwhenyou'renestingyourfunctionstoodeep.Heedthatwarning.Thepreferredwaytoeasemultipleindentationlevelsinaswitchstatementistoalignthe"switch"anditssubordinate"case"labelsinthesamecolumninsteadof"double-indenting"the"case"labels.E.g.:switch(suffix){case'G':case'g':mem<<=30;break;case'M':case'm':mem<<=20;break;case'K':case'k':mem<<=10;/*fallthrough*/default:break;}Don'tputmultiplestatementsonasinglelineunlessyouhavesomethingtohide:if(condition)do_this;do_something_everytime;Don'tputmultipleassignmentsonasinglelineeither.Kernelcodingstyleissupersimple.Avoidtrickyexpressions.Outsideofcomments,documentationandexceptinKconfig,spacesareneverusedforindentation,andtheaboveexampleisdeliberatelybroken.Getadecenteditoranddon'tleavewhitespaceattheendoflines.Chapter2