注釋
命名清晰
簡單,單獨的變數使用,例如:
* 變數定義
int a = 1;
* 判斷
if (a > 1)
* 這些情況下通常會利用巨集定義來代替這些幻數/魔數,例如:
定義:#define max 1
使用:a = max; if (a > max)
陣列使用,例如:
* gui程式設計需要定義5個按鍵,class,pop,....
定義:button[5];
使用:button[0].txt = ""; button[1].txt = "";
* 這種寫法不靈活,並且使用時容易弄混,如果需要交換一下,改動起來要非常細心;可以使用列舉來優化,如果還有額外的資訊,可以通過陣列或者map進行對映,button的txt屬性都不同,改善如下:
enum buttonitem
char **buttontxt[max - min] =
定義:button[max - min];
使用:1. 通用的設定可以通過遍歷實現
for (i = (buttonitem)0; i < max; i++)
button[i].color = "";
button[i].txt = buttontxt[i];
2. 不通用的設定可以單獨設定
button[class].txt = "";
* 注意點:
1. 列舉中的min和max是額外新增的範圍界定標示,從而能夠實現列舉的遍歷。
2. 列舉項的值不能手動改變,因為需要連續,遍歷時才不會出錯。
給postmessage加上callback方法
postmessage雙向通訊中,是不能使用 函式的。window.postmessage 這樣是不行的,js會提示function不會被轉殖。我猜啊因為postmessage是通過dom通訊,js物件會被json化 也就是說不能傳遞方法。不過,話說回來,有什麼不能的呢,大不了,把function ...
給ActiveX控制項加上數字簽名的步驟
簡單地說,所謂數字簽名就是附加在資料單元上的一些資料,或是對資料單元所作的密碼變換。這種資料或變換允許資料單元的接收者用以確認資料單元的 和資料單元的完整性並保護資料,防止被人 例如接收者 進行偽造。它是對電子形式的訊息進行簽名的一種方法,乙個簽名訊息能在乙個通訊 網路中傳輸。基於公鑰密碼體制和私鑰...
當給main加上synchronized
1。在乙個同步化的靜態方法執行之前,它會獲取與它的class 物件相關聯的乙個管程 monitor 鎖 jls 8.4.3.6 所以在上面的程式中,主線程會在建立第二個執行緒之前獲得與pingpong.class 相關聯的那個鎖。只要主線程 占有著這個鎖,第二個執行緒就不可能執行同步化的靜態方法。具...