它可以模擬命名空間用C這樣的:命名空間與結構
#include <stdio.h>
#include <math.h>
struct math_namespace {
double (*sin)(double);
};
const struct math_namespace math = {sin};
int main() {
printf("%f\n", math.sin(3));
return 0;
}
有什麼缺點這一點,或只是其中一個前綴更有意義的情況呢?這樣做似乎更清潔。
'sin'有'double sin(double)'類型,你應該改變類型或使用'sinf'。 – 2013-02-26 17:00:11
有趣的方法。但我認爲這與前綴的可讀性一樣有害。我看到的主要缺點是,如果函數指針未初始化,而不是鏈接錯誤,則會出現運行時錯誤。 – StoryTeller 2013-02-26 17:02:37
它引入了更多的間接性,還是不是? (有時間罰分?) – qPCR4vir 2013-02-26 17:05:45