
【電】 multiply defined symbol
在漢英詞典編纂領域,"多重定義符號"(通常體現為數字序號、分號或分段符號)是處理一詞多義現象的核心标注工具,用于清晰區分同一詞目下的不同義項。其功能與設計遵循語言學原理,旨在提升詞典的精确性與實用性。以下是基于詞典學理論的詳細解釋:
多重定義符號(如 ❶、❷、❸ 或 1.、2.、3.)在漢英詞典中承擔以下核心角色:
将同一詞形(如漢字單字或詞語)的不同語義或用法進行系統化切分。例如漢語動詞"打"在《牛津高階英漢雙解詞典》中被分為 24 個義項,通過數字符號層級化呈現其"擊打"(hit)、"制作"(make)、"計算"(calculate)等迥異含義。
符號層級結構(如 1.1、1.2)體現義項間的邏輯關系。以"運行"為例:
1.2 (程式)執行
此類标注揭示核心語義與派生用法的認知關聯。
不同詞典體系采用差異化符號策略:
《朗文當代高級英語辭典》(英漢雙解版)使用1. 2. 3. 标注義項,輔以▶符號細分用法子類。例如動詞"set"的 45 個義項通過數字實現快速定位。
《現代漢語詞典》(第7版)在義項前添加〈書〉〈口〉 等語域标記,與定義符號協同構建三維釋義網絡(語義+語用+語法)。
專業詞典如《柯林斯COBUILD高級英漢雙解詞典》采用■●◆ 等幾何符號區分釋義類型(字面義/比喻義/術語義),形成多維度索引架構。
面對多重定義符號時,高效解碼需關注:
主序號(如 2.)代表獨立語義範疇,子序號(2.1)指向該範疇下的用法變體。
根據目标文本的語法結構(如及物/不及物用法)和搭配詞(如"打+文件"指向"type"義項)鎖定對應符號标記的義項。
部分詞典以★标記高頻義項(如《麥克米倫高階英漢雙解詞典》),輔助用戶優先識别核心語義。
注:本文釋義框架基于詞典學經典理論及主流漢英詞典編纂實踐,符號功能分析參照章宜華(2007)提出的"多維釋義結構模型"。
多重定義符號(Multiply Defined Symbol)是編程中常見的鍊接錯誤,指在多個源文件或同一文件中重複定義了相同名稱的全局變量、函數等符號。以下是詳細解釋:
// File1.c
int global_var = 10;// 強符號定義
// File2.c int global_var = 20;// 另一個強符號定義 → 引發鍊接錯誤
2. **符號類型與規則**
根據鍊接器的處理邏輯(參考和):
- **強符號**:已初始化的全局變量和函數(如 `int a = 5;` 或 `void func(){}`)
- **弱符號**:未初始化的全局變量(如 `int a;`)
**鍊接器處理規則**:
① 禁止存在多個同名強符號;
② 若存在一個強符號和多個弱符號,選擇強符號;
③ 若全為弱符號,隨機選擇一個(可能導緻意外行為)。
3. **常見場景與解決方法**
- **頭文件中定義變量**
錯誤示例:在 `.h` 文件中寫 `int var = 0;`,且多個源文件包含該頭文件。
正确做法:頭文件聲明用 `extern`,源文件定義(參考):
```c
// header.h
extern int var;// 聲明
// source.c
int var = 0; // 定義
static
限定作用域,使變量僅在當前文件可見:static int local_var;// 每個文件獨立實例
// 錯誤:重複強符號
int main() { return 0; }
修複:僅保留一個 main
函數定義。
多重定義符號的根源在于全局符號的重複強定義。解決關鍵是使用 extern
聲明、static
限制作用域,或通過頭文件管理聲明與定義分離。
【别人正在浏覽】