锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久久久综合日本,久久精品一区二区,久久精品国产亚洲av高清漫画http://m.shnenglu.com/yuqilin1228/category/13382.html璺湪鑴氫笅zh-cnSat, 27 Mar 2010 10:45:12 GMTSat, 27 Mar 2010 10:45:12 GMT60銆愯璁″疄璺點(diǎn)慣he Practice of Programming 01http://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110628.htmlLynnRaymondLynnRaymondFri, 26 Mar 2010 15:39:00 GMThttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110628.htmlhttp://m.shnenglu.com/yuqilin1228/comments/110628.htmlhttp://m.shnenglu.com/yuqilin1228/archive/2010/03/26/110628.html#Feedback0http://m.shnenglu.com/yuqilin1228/comments/commentRss/110628.htmlhttp://m.shnenglu.com/yuqilin1228/services/trackbacks/110628.htmlThe Practice of Programming - Chapter 1 Style

1.1  Names

       A name should be informative, concise, memorable, and pronounceable if possible.

   

* Use descriptive names for globals, short names for locals.

Global variables need names long enough and descriptive enough to remind the reader of their meaning.

It's also helpful to include a brief comment with the declaration of each global.

The longer the program, the more important is the choice of good, descriptive, systematic names.

* Be consistent.

Give related things related names that show their relationship and high-light their difference.

* Use active names for functions.

* Be accurate.

   

1.2 Expressions and Statements

   

* Indent to show structure.

A consistent indentation style is the lowest-energy way to make a program's structure self-evident.

* Use the natural form of expressions.

Write expressions as you might speak them aloud.

* Parenthesize to resolve ambiguity.

* Break up complex expressions.

* Be clear.

the goal is to write clear code, not clever code.

* Be careful with side effects.

   

1.3 Consistency and Idioms

* Use a consistent indentation and brace style.

* Use idioms for consistency.

A central part of learning any language is developing a familiarity with its idioms.

* Use else-ifs for multi-way decisions.

   

1.4 Function Macros

* Avoid function macros.

* Parenthesize the macro body and arguments.

In C++, inline functions avoid the syntactic trouble while offering whatever performance advantage macros might provide.

They are appropriate for short functions that set or retrieve a single value.

   

1.5 Magic Numbers

Magic numbers are the constants, array sizes, character positions, conversion factors, and other literal numric values that appear in programs.

   

* Given names to magic numbers.

* Define numbers as constants, not macros.

The C preprocessor is a powerful but blunt tool, however, and macros are a dangerous way to program because they change the lexical structure of the program underfoot. Let the language proper do the work.

* Use character constants, not integers.

* Use the language to calculate the size of an object.

   

1.6 Comments

* Don't belabor the obvious.

* Comment functions and global data.

* Don't comment bad code, rewrite it.

* Don't contradict the code.

* Clarify,don't confuse.

   

1.7 Why bother?

The main concerns of programming style: descriptive names, clearity in expressions, straightforward control flow, readability of code and comments, and the importance of consistence use of conventions and idioms in achieving all of these.

Well-written code is easier to read and to understand, almost surely has fewer errors, and is likely to be smaller than code that has been carelessly tossed together and never polished.

The key observation is that good style should be a matter of habit.

Once they become automatic, your subconscious will take care of many of the details for you, and even the code you produce under pressure will be better.

   

   

紼嬪簭璁捐瀹炶返 - 絎?绔?/span>

1. 椋庢牸

1.1 鍚嶅瓧

涓涓悕瀛楀簲璇ユ槸闈炲艦寮忕殑銆佺畝緇冪殑銆佸鏄撹蹇嗙殑錛屽鏋滃彲鑳界殑璇濓紝鏈濂芥槸鑳藉鎷艱鐨勩?/span>

* 鍏ㄥ眬鍙橀噺浣跨敤鍏鋒湁璇存槑鎬х殑鍚嶅瓧錛屽眬閮ㄥ彉閲忕敤鐭悕瀛椼?/span>

鍏ㄥ眬鍙橀噺鐨勫悕瀛楀簲璇ヨ凍澶熼暱錛屽叿鏈夎凍澶熺殑璇存槑鎬с傜粰姣忎釜鍏ㄥ眬鍙橀噺澹版槑闄勪竴涓畝鐭敞閲婁篃闈炲父鏈夊府鍔┿?/span>

瀵逛簬闀跨殑紼嬪簭錛岄夋嫨閭d簺濂界殑銆佸叿鏈夎鏄庢х殑銆佺郴緇熷寲鐨勫悕瀛楀氨鏇村姞閲嶈銆?/span>

* 淇濇寔涓鑷存с?/span>

* 鍑芥暟閲囩敤鍔ㄤ綔鎬у悕瀛椼?/span>

* 瑕佸噯紜傚悕瀛椾笌鍏跺疄鐜頒繚鎸佸噯紜殑瀵瑰簲銆?/span>

   

1.2 琛ㄨ揪寮忓拰璇彞

* 鐢ㄧ緝琛屾樉紺虹▼搴忕殑緇撴瀯銆?/span>

閲囩敤涓縐嶄竴鑷寸殑緙╄椋庢牸錛屾槸浣跨▼搴忓憟鐜板嚭緇撴瀯娓呮櫚鐨勬渶鐪佸姏鐨勬柟娉曘?/span>

* 浣跨敤琛ㄨ揪寮忕殑鑷劧褰㈠紡銆?/span>

琛ㄨ揪寮忓簲璇ュ啓寰椾綘鑳藉ぇ澹板康鍑烘潵銆?/span>

* 鐢ㄥ姞鎷彿鐨勬柟寮忔帓闄や簩涔夋с?/span>

* 鍒嗚В澶嶆潅鐨勮〃杈懼紡銆?/span>

* 瑕佹竻鏅般?/span>

鐩爣搴旇鏄啓鍑烘渶娓呮櫚鐨勪唬鐮侊紝鑰屼笉鏄渶宸у鐨勪唬鐮併?/span>

* 灝忓績(jī)鍓綔鐢ㄣ?/span>

鍍?/span>++榪欎竴綾昏繍綆楃鍏鋒湁鍓綔鐢紝瀹冧滑闄や簡(jiǎn)榪斿洖涓涓煎錛岃繕灝嗛殣鍚湴鏀瑰彉鍙橀噺鐨勫箋?/span>

   

1.3 涓鑷存у拰涔?fàn)鎯敤娉?/span>

* 浣跨敤涓鑷寸殑緙╂帓鍜屽姞鎷彿椋庢牸銆?/span>

濡傛灉浣犲伐浣滃湪涓涓笉鏄嚜宸卞啓鐨勭▼搴忎笂錛岃娉ㄦ剰淇濈暀紼嬪簭鍘熸湁鐨勯鏍箋?/span>

* 涓轟簡(jiǎn)涓鑷存э紝浣跨敤涔?fàn)鎯敤娉曘?/span>

鍦ㄥ涔?fàn)涓涓璦鐨勮繃紼嬩腑錛屼竴涓腑蹇?jī)闂灏辨槸閫愭笎鐔熸?zhèn)夊畠鐨勪範(fàn)鎯敤娉曘?/span>

   

-----------------------------------------------

甯歌涔?fàn)鎯敤娉曚箣涓鏄驚鐜殑褰㈠紡銆?/span>

渚嬪錛?/span>

for(i = 0; i < n; i++)

array[i] = 1.0;

C++鎴?/span>Java閲屽父瑙佺殑鍙︿竴縐嶅艦寮忔槸鎶婂驚鐜彉閲忕殑澹版槑涔熷寘鎷湪鍐咃細(xì)

for(int i = 0; i < n; i++)

array[i] = 1.0;

-----------------------------------------------

涓嬮潰鏄?/span>C璇█鎵弿涓涓摼琛ㄧ殑鏍囧噯寰幆錛?/span>

for(p = list; p != NULL; p = p->next)

...

-----------------------------------------------

鏃犵┓寰幆錛?/span>

for( ;; )

...

鎴?/span>

while(1)

...

-----------------------------------------------

甯歌鐨勫彟涓涓儻鐢ㄦ硶鏄妸涓涓祴鍊兼斁榪涘驚鐜潯浠墮噷錛?/span>

while( (c = getchar()) != EOF)

putchar(c);

-----------------------------------------------

涓涓笉濂界殑渚嬪瓙錛?/span>

char *p, buf[256];

gets(buf);

p = malloc(strlen(buf));

strcpy(p, buf);

闂1.

緇濅笉瑕佷嬌鐢ㄥ嚱鏁?/span>gets錛屽洜涓轟綘娌″姙娉曢檺鍒跺畠鐢辮緭鍏ラ偅鍎胯鍏ュ唴瀹圭殑鏁伴噺銆傝繖甯稿父浼?xì)瀵艰嚧涓涓畨鍏ㄦч棶棰樸?/span>

闂2.

榪樻湁鍙︿竴涓棶棰橈細(xì)strlen姹傚嚭鐨勫兼病鏈夎鍏ヤ覆緇撳熬鐨?/span>'\0'瀛楃錛岃?/span>strcpy鍗村皢澶嶅埗瀹冦?/span>

涔?fàn)鎯啓娉曟槸锛?xì)

p = malloc(strlen(buf)+1);

strcpy(p, buf);

鎴栧湪C++閲岋細(xì)

p = new char[strlen(buf)+1];

strcpy(p , buf);

濡傛灉榪欓噷娌℃湁+1錛屽氨瑕佸綋蹇?jī)銆?/span>

strdup鍙互浣塊伩鍏嶄笂榪伴敊璇彉寰楁洿綆鍗曘傚彲鎯?/span>strdup涓嶆槸ANSI C鏍囧噯涓殑鍐呭銆?/span>

闂3.

涓婇潰涓や釜鐗堟湰閮芥病鏈夋鏌?/span>malloc鐨勮繑鍥炲箋?/span>

鍦ㄥ疄闄呯▼搴忎腑錛屽浜?/span>malloc銆?/span>realloc銆?/span>strdup鍙?qiáng)鋼Q浣曠壍娑夊埌瀛樺偍鍒嗛厤鐨勫嚱鏁幫紝瀹冧滑鐨勮繑鍥炲奸兘蹇呴』鍋氭鏌ャ?/span>

-----------------------------------------------

   

* 鐢?/span>else-if琛ㄨ揪澶氳礬閫夋嫨銆?/span>

澶氳礬閫夋嫨鐨勪範(fàn)鎯〃紺烘硶褰㈠紡濡備笅錛?/span>

if (condition1)

statement1

else if (condition2)

statement2

...

else if (conditionn)

statementn

else

default-statement

   

1.4 鍑芥暟瀹?/span>

* 閬垮厤浣跨敤鍑芥暟瀹忋?/span>

鍑芥暟瀹忔渶甯歌鐨勪竴涓弗閲嶉棶棰樻槸錛氬鏋滀竴涓弬鏁板湪瀹氫箟涓嚭鐜板嬈★紝瀹冨氨鍙兘琚嬈℃眰鍊箋?/span>

濡傛灉璋冪敤鏃剁殑瀹為檯鍙傛暟甯︽湁鍓綔鐢紝緇撴灉灝卞彲鑳戒駭鐢熶竴涓毦浠ユ崏鎽哥殑閿欒銆?/span>

渚嬪瓙錛?/span>

鏌?/span><ctype.h>涓細(xì)

#define isupper(c) ((c) >= 'A' && (c) <= 'Z')

濡傛灉榪欐牱璋冪敤

while (isupper(c = getchar())),

涓ゆ杈撳叆鐨勫瓧絎?/span>c琚垎鍒笌'A'鍜?/span>'Z'姣旇緝浜?jiǎn)銆?/span>

   

C璇█鏍囧噯鍏佽灝?/span>isupper鍙?qiáng)绫讳技鍑芥暟瀹氫箟湄?fù)瀹忥紝浣嗚姹備繚璇佸畠浠殑鍙傛暟鍙眰鍊間竴嬈°?/span>

濡傛灉甯屾湜鏇村畨鍏ㄤ簺錛岄偅涔堝氨涓瀹氫笉瑕佸祵濂楀湴浣跨敤鍍?/span>getchar榪欑甯︽湁鍓綔鐢ㄧ殑鍑芥暟銆?/span>

鏀瑰啓濡備笅錛?/span>

while ((c = getchar()) != EOF && isupper(c))

鏈夋椂澶氭姹傚煎甫鏉ョ殑鏄墽琛屾晥鐜囬棶棰橈紝鑰屼笉鏄湡姝g殑閿欒銆?/span>

   

* 緇欏畯鐨勪綋鍜屽弬鏁伴兘鍔犱笂鎷彿銆?/span>

濡傛灉涓涓搷浣滄瘮杈冨鏉傦紝鎴栬呭畠寰堝叿涓鑸э紝鍊煎緱鍖呰璧鋒潵錛岄偅涔堣繕鏄簲璇ヤ嬌鐢ㄥ嚱鏁般?/span>

C++鎻愪緵鐨?/span>inline鍑芥暟鏃㈤伩鍏嶄簡(jiǎn)璇硶鏂歸潰鐨勯夯鐑?chǔ)锛岃屼笖鍙堝彲寰楀埌瀹忚兘澶熸彁渚涚殑鎵ц鏁堢巼錛屽緢閫傚悎鏉ュ畾涔夐偅浜涜緗垨鑰呮彁鍙栦竴涓肩殑鐭俊鍑芥暟銆?/span>

   

1.5 紲炵鐨勬暟 錛堢炕璇戠殑鏈夌偣...錛?/span>

紲炵鐨勬暟鍖呮嫭鍚勭甯告暟銆佹暟緇勭殑澶у皬銆佸瓧絎︿綅緗佸彉鎹㈠洜瀛愪互鍙?qiáng)绋嬪簭涓嚭鐜扮殑鍏朵粬浠ユ枃瀛楀舰寮忓啓鍑虹殑鏁板箋?/span>

   

* 緇欑縐樼殑鏁拌搗涓悕瀛椼?/span>

* 鎶婃暟瀹氫箟涓哄父鏁幫紝涓嶈瀹氫箟涓哄畯銆?/span>

C璇█棰勫鐞嗙▼搴忔槸涓涓己鏈夊姏鐨勫伐鍏鳳紝浣嗘槸瀹冨張鏈変簺椴佽幗銆?/span>

浣跨敤瀹忚繘琛岀紪紼嬫槸涓縐嶅緢鍗遍櫓鐨勬柟寮忥紝鍥犱負(fù)瀹忎細(xì)鍦ㄨ儗鍦伴噷鏀瑰彉紼嬪簭鐨勮瘝娉曠粨鏋勩傛垜浠簲璇ヨ璇硶鍘誨仛姝g‘鐨勫伐浣溿?/span>

錛堣瘧鑰呮敞錛氶澶勭悊鍛戒護(hù)涓嶆槸C璇█鏈韓鐨勭粍鎴愰儴鍒嗭紝鑰屾槸涓緇勮緟鍔╂垚鍒嗐傝繖閲岃"璁╄璦..."錛屼篃灝辨槸璇翠笉瑕佺敤棰勫鐞嗗懡浠ゅ仛銆傦級(jí)

* 浣跨敤瀛楃褰㈠紡鐨勫父閲忥紝涓嶈鐢ㄦ暣鏁般?/span>

渚嬪瓙錛?/span>

if (c >= 65 && c <= 90)

...

榪欑鍐欐硶瀹屽叏渚濊禆浜庣壒孌婄殑瀛楃琛ㄧず鏂瑰紡銆?/span>

榪欐牱鍐欐洿濂戒簺錛?/span>

if (c >= 'A' && c <= 'Z')

...

浣嗘槸錛屽鏋滃湪鏌愪釜緙栫爜瀛楃闆嗛噷鐨勫瓧姣嶇紪鐮佷笉鏄繛緇殑錛屾垨澶規(guī)湁鍏朵粬瀛楁瘝錛岄偅涔堣繖縐嶆弿榪板氨鏄敊鐨勩?/span>

鏈濂芥槸鐩存帴浣跨敤搴撳嚱鏁般?/span>

if(isupper(c))

...

-----------------------------------------------

紼嬪簭閲岃澶氫笂涓嬫枃涓粡甯稿嚭鐜扮殑0銆傚鏋滄垜浠妸姣忎釜0鐨勭被鍨嬪啓寰楁洿鏄庣‘鏇存竻妤氾紝瀵硅紼嬪簭鐨勪漢鐞嗚В鍏朵綔鐢ㄦ槸寰堟湁甯姪鐨勩?/span>

渚嬪錛岀敤 (void*)0 鎴?/span> NULL 琛ㄧずC閲岀殑絀烘寚閽堝鹼紝鐢?/span>'\0'鑰屼笉鏄?/span>0琛ㄧず瀛楃涓茬粨灝劇殑絀哄瓧鑺傘?/span>

鐒惰屽湪C++閲屼漢浠兘宸茬粡鎺ュ彈浜?jiǎn)鐢?/span>0錛堣屼笉鏄?/span>NULL錛夎〃紺虹┖鎸囬拡銆?/span>Java閲屽垯瀹氫箟浜?jiǎn)鍏抽敭瀛?/span>null銆?/span>

   

* 鍒╃敤璇█鍘昏綆楀璞$殑澶у皬銆?/span>

涓嶈瀵逛換浣曟暟鎹被鍨嬩嬌鐢ㄦ樉寮忓啓鍑烘潵鐨勫ぇ灝忋?/span>

渚嬶細(xì)

 char buf[1024];

 fgets(buf, sizeof(buf), stdin);

瀵逛簬閭d簺鍙互鐪嬫竻妤氱殑鏁扮粍錛堜笉鏄寚閽堬級(jí)錛屼笅闈㈢殑瀹忓畾涔夎兘璁$畻鍑烘暟緇勭殑鍏冪礌涓暟錛?/span>

#define NELEMS(array) (sizeof(array) / sizeof(array[0]))

   

1.6 娉ㄩ噴

* 涓嶈澶ц皥鏄庢樉鐨勪笢瑗褲?/span>

娉ㄩ噴搴旇鎻愪緵閭d簺涓嶈兘涓涓嬪瓙浠庝唬鐮佷腑鐪嬪埌鐨勪笢瑗匡紝鎴栬呮妸閭d簺鏁e竷鍦ㄨ澶氫唬鐮侀噷鐨勪俊鎭敹闆嗗埌涓璧楓?/span>

* 緇欏嚱鏁板拰鍏ㄥ眬鏁版嵁鍔犳敞閲娿?/span>

* 涓嶈娉ㄩ噴宸殑浠g爜錛岄噸鍐欏畠銆?/span>

* 涓嶈涓庝唬鐮佺煕鐩俱?/span>

褰撲綘鏀瑰彉?shù)唬鐮佹椨灱屼竴瀹氳娉ㄦ剰淇濊瘉鍏朵腑鐨勬敞閲婃槸鍑嗙‘鐨勩?/span>

* 婢勬竻鎯呭喌錛屼笉瑕佹坊涔便?/span>

娉ㄩ噴搴旇鍦ㄥ洶闅劇殑鍦版柟灝介噺甯姪璇昏咃紝鑰屼笉鏄粰浠栦滑璁劇疆闅滅銆?/span>

   

娉ㄩ噴寰堥噸瑕侊紝浣嗘槸涔熶笉蹇呯洸鐩敞閲娿?/span>

娉ㄩ噴鏄竴縐嶅伐鍏鳳紝瀹冪殑浣滅敤灝辨槸甯姪璇昏呯悊瑙g▼搴忎腑鐨勬煇浜涢儴鍒嗭紝鑰岃繖浜涢儴鍒嗙殑鎰忎箟涓嶅鏄撻氳繃浠g爜鏈韓鐩存帴鐪嬪埌銆?/span>

   

1.7 涓轟綍瀵規(guī)璐瑰績(jī)

娉ㄩ噸紼嬪簭璁捐鐨勯鏍鹼細(xì)鍏鋒湁璇存槑鎬х殑鍚嶅瓧銆佹竻鏅扮殑琛ㄨ揪寮忋佺洿鎴簡(jiǎn)褰撶殑鎺у埗嫻併佸彲璇葷殑浠g爜鍜屾敞閲婏紝浠ュ強(qiáng)鍦ㄨ拷姹傝繖浜涘唴瀹規(guī)椂涓鑷村湴浣跨敤鏌愪簺瑙勫垯鍜屾儻鐢ㄦ硶鐨勯噸瑕佹с?/span>

   

涔﹀啓鑹ソ鐨勪唬鐮佹洿瀹規(guī)槗闃呰鍜岀悊瑙o紝鍑犱箮鍙互淇濊瘉鍏朵腑鐨勯敊璇洿灝戙?/span>

濂介鏍煎簲璇ユ垚涓轟竴縐嶄範(fàn)鎯?/span>

涓鏃﹁繖縐嶄範(fàn)鎯彉鎴愯嚜鍔ㄧ殑涓滆タ錛屼綘鐨勬綔鎰忚瘑灝變細(xì)甯姪浣犵収鏂欒澶氱粏鑺傞棶棰橈紝鐢氳嚦浣犲湪宸ヤ綔鍘嬪姏涓嬪啓鍑虹殑浠g爜涔熶細(xì)鏇村ソ銆?/span>



LynnRaymond 2010-03-26 23:39 鍙戣〃璇勮
]]>
国产精品久久久久影视不卡| 亚洲va中文字幕无码久久不卡| 一本一本久久a久久综合精品蜜桃| 亚洲国产精品综合久久一线| 国产精品gz久久久| 亚洲人成无码网站久久99热国产 | 国产午夜精品理论片久久影视| 久久久久久国产精品美女| 久久精品国产AV一区二区三区| 2021国内精品久久久久久影院| 久久国语露脸国产精品电影| 伊人色综合久久天天人手人婷 | 亚洲第一极品精品无码久久| 人人狠狠综合久久88成人| 996久久国产精品线观看| 久久成人永久免费播放| 亚洲性久久久影院| 亚洲国产成人久久精品动漫| 国内精品久久久久久久亚洲 | 久久久久久国产精品无码下载| 精品久久久久久久无码| 婷婷久久综合九色综合九七| 日本久久久久亚洲中字幕| 国产精品亚洲美女久久久| 久久这里只有精品18| 国产69精品久久久久9999| 色综合久久久久久久久五月| 日韩亚洲欧美久久久www综合网| 久久精品极品盛宴观看| 久久美女人爽女人爽| 国产午夜福利精品久久2021| 亚洲国产成人久久综合一区77| 9191精品国产免费久久| 日韩精品久久无码中文字幕| 久久免费视频1| 久久免费99精品国产自在现线| 夜夜亚洲天天久久| 久久亚洲精品无码AV红樱桃| 久久精品国产免费观看三人同眠| 精品久久久久久无码人妻热| 国产99久久久国产精免费|