防止編譯重複

2021-06-21 17:08:10 字數 663 閱讀 6426

1、一般的做法如下,防止重複編譯

#ifndef def_date

#define def_date

typdef int date;

#endif

2、可用static,這是描述變數或函式的防止重編譯

3、當系統只有乙個模組的時候,命名衝突的問題不太嚴重。當系統有n個模組之後,很難保證不發生命名衝突。如果**是我們自己編寫的,可以通過良好的程式設計習慣來避免這個問題。引數命名時與模組關聯

4、對於第二種情況,如果多個開源庫有命名衝突的話,沒有辦法只能修改開源庫的**,比較好的做法是定義巨集來完成符號的替換,這樣**改動最少,也易於維護。舉個例子說明這個問題,加入說系統中兩個開源庫中free函式命名衝突了,需要修改乙個庫的符號。怎樣實現呢? 在標頭檔案中加入如下定義:

#define free my_free

5、如果系統中有兩個相同的.o檔案(也就是系統中檔名衝突了,有兩個相同名稱的.c檔案)會有什麼結果呢?系統隨機link乙個.o到最終的目標檔案中,並且不會產生錯誤和警告提示。這種情況非常難發現。需要經驗和敏銳的洞察力。解決方法有兩個:1)重新命名其中的乙個.c檔案。這樣就會產生不同的.o檔案,兩個.o檔案都會被link到最終的目標檔案中。

2)修改乙個庫的makefile檔案,讓其生成的.o檔案加乙個字首或者字尾(需要研究自己系統的makefile寫法)。

防止重複提交

在jsp頁面的form中,新增 然後在提交的action類中 suppresswarnings unchecked scope prototype controller results parentpackage default interceptorrefs value interceptorre...

防止重複點選

當 後端比較複雜,ajax請求比較慢的時候。使用者重複點選會阻塞頁面的渲染。前端限制下很必要。1 doctype html 2 html 3 head 4 meta charset utf 8 5 title 無標題文件 title 6head 78 body 9 div id click 點選按鈕...

防止重複提交

過濾器 repeatable 過濾器 構建可重複讀取inputstream的request submit註解 package com.medaxis.config.interceptor.annotation import j a.lang.annotation.自定義註解防止表單重複提交 inhe...