寫**最重要的是清晰,包括思路的清晰和**結構的清晰。我們無法保證寫的**一定是正確的,但我們可以保證自己是在頭腦清晰的情況下書寫,並且通過不斷的練習,用更加清晰的**結構實現。越清晰,程式就越可能正確,並且即使出錯也很容易看到問題。
0)在能過題的情況下,最樸素最好寫的方式就是最好的。
1)double x = 0;
scanf("%lf", x); // &x
printf("%lf\n", x); // output double -> %f
printf("%.6f\n", 0); // undef
// best practice
printf("%.4f\n", x + eps);
2)int a[10];
sizeof(a); // 10 * 4
void gao(int a)
3)const int inf = 0x7fffffff;
void dijkstra(int dist, int n)
4)// output %
printf("%%");
// output hex, oct
print("%x%o", a, b);
5)int a = 3;
if (a = 3)
6)int x = -7, m = 3;
printf("%d\n", x % m);
// best practice
printf("%d\n", (x % m + m) % m);
7)long long a = 1 << 40;
// best practice
long long a = 1ll << 40;
8)long long a;
printf("%i64d\n", a); // under windows
printf("%lld\n", a); // under linux
9)int main()
// best practice
int a[10 * 1000 * 1000];
int main()
// or
int main()
10)char a[11];
gets(a); // unsafe
// best practice
fgets(a, 11, stdin);
11)double a = 1.0, b = 1.0 / 888888888888888888 * 888888888888888888;
printf("%s\n", a == b ? "same" : "diff");
// best practice
int sgn(double x, double eps = 1.0e-9)
printf("%s\n", sgn(a - b) == 0 ? "same" : "diff");
12)// round up
(int)(a + eps)
(int)(a + eps + 0.5)
13)// small heap
priority_queue< double, vector, greater> que;
// unique
vectorvec;
sort(vec.begin(), vec.end());
vec.resize(unique(vec.begin(), vec.end()) – vec.begin());
14)總是用cerr輸出除錯資訊,這樣在注釋除錯資訊時,搜尋cerr就可以很容易注釋掉全部的除錯資訊。
15) codeblocks在執行視窗貼上資料的方法
16)總是使用fill_n函式
HTML編碼建議And如何更好的編碼
1 讓瀏覽器自己選擇渲染頁面的標準,同時為了擁抱未來 2 定義頁面字元編碼,精簡的 同樣的效果 3 樣式檔案放頭部,且儘量減少引入的檔案數量 複製 4 指令碼檔案放底部,當發布專案的時候盡量壓縮合併 複製 5 為頁面新增注釋 複製 6 縮排和換行 使用4個空格作為乙個縮排層級,大多數時候,開發工具幫...
CodeIgnitor編碼規範與建議
1.陣列標識 定義陣列時,應當根據php版本選擇不同的定義方式,新版本的定義方法往往更加美觀 對於php 7以前的版本,只能使用array 對於php 7之後的版本,定義陣列時使用更好 2.陣列追加 在對陣列進行追加時,不可使用 號,最美觀簡單的方法是使用php特有的連加符號 array1 1 ar...
編碼建議 魔鬼在細節
防止空指標和下標越界 這是我最不喜歡看到的異常,尤其在核心框架中,我更願看到資訊詳細的引數不合法異常,這也是乙個健狀的程式開發人員,在寫每一行 都應在潛意識中防止的異常,基本上要能確保一次寫完的 在不測試的情況,都不會出現這兩個異常才算合格。保證執行緒安全性和可見性 對於框架的開發人員,對執行緒安全...