全域性函式的使用

2021-06-23 00:37:11 字數 794 閱讀 8042

使用方法:

在".h"裡宣告

unsigned int hash(const void *key, int len);

在".cpp"裡實現

unsigned int hash(const void *key, int len)

錯誤使用:

將全域性函式的定義放到.h檔案中,且標頭檔案沒有巨集保護。

/*******************hashtable.h****************/

unsigned int hash(const void *key, int len)

則g++在編譯過程中報hash()函式重複定義(multiple definitionof)的錯誤,原因如下:

當hashtable.h 被同一 .cpp檔案多次引用時(可能是間接多次引用),編譯生成相應的 .o 檔案,鏈結時候會報 hash函式重複定義。

乙個可能想到的方法是在標頭檔案中加入巨集定義,防止標頭檔案被重複引用,如:

/*******************hashtable.h****************/

#ifndef _hash_table_h_inc

#define _hash_table_h_inc

unsigned int hash(const void *key, int len)

#endif

解決辦法:

將全域性函式宣告放到.h檔案中,將定義放到cpp中。

python 中全域性函式的使用

import 關鍵字 匯入模組 全域性函式 print input dir import math ceil 向上取整 天花板函式 上入整數函式 ceil x 返回數字的上入整數,如math.ceil 4.1 返回 5 floor 向下取整 地板函式 下舍取整函式 floor x 返回數字的下舍整數...

vue全域性函式

src main.js test.js 首先寫乙個全域性方法放入test.js檔案內 事先定義好的,為了vue識別註冊之用 exports.install function vue,options 使用上面的寫法突然遇到乙個很詭異的報錯 referenceerror exports is not d...

js全域性函式

以前沒搞懂js的全域性函式,全域性函式和window物件的函式不一樣。全域性函式不屬於任何乙個內建物件。js包含以下7個全域性函式,用於一些常用的功能 escape eval isnan isfinite parsefloat parseint unescape escape string 對str...