C語言中同名函式的煩惱(求help)

2021-06-22 10:41:54 字數 1156 閱讀 3102

先說下windows

環境:系統

window xp,工具

visual c++ 6.0

**:#include

#include

void *malloc(unsigned long size)

int main()

return 0; }

編譯--------------------configuration: test - win32 debug--------------------

compiling...

test.cpp

d:\vc6\myprojects\test\test.cpp(15) : error c2668: 'malloc' : ambiguous call to overloaded function

error executing cl.exe.

test.obj - 1 error(s), 0 warning(s)

編譯出錯了,完全和我想象中一樣,也和俺從老師,書上學到的一樣,很好

接下來linux

環境(uname -a)

linux localhost.localdomain 2.6.18-194.el5 #1 smp tue mar 16 21:52:39 edt 2010 x86_64 x86_64 x86_64 gnu/linux

**(和windows的基本一致)

#include

#include

void *malloc(unsigned long size)

int main()

return 0; }

編譯沒錯,執行結果頁沒錯

[root@localhost test]# gcc -g -wall -werror test.c -o test

[root@localhost test]# ./test

what a ****ing day.

failed.

[root@localhost test]#

問題來了。。

1 為什麼在linux上能編譯通過,windows下不行。。編譯器,我猜的。

2 在linux下,乙個程式中能夠存在同名函式,那我怎麼知道那個起作用了

有人知道這方面的東西,歡迎指正。。

C語言中的函式

在對c語言有過一定的了解之後,我們都會涉及到乙個概念 函式。那麼,什麼是函式呢?首先,我們來看一段 includeint max int x,int y int main 在上面的程式中,我們將引數a,b傳入到函式max之中,最後求出結果並返回,那麼,這樣寫的好處是什麼呢?我們為什麼要使用函式來實現...

C語言中的函式指標

開啟去年6月的乙個test.cpp檔案,發現對裡面測試的函式指標幾乎沒有印象了。溫故而知新,於是重新找到ansi c 裡面的說明 除了宣告指向整型數字 雙精度型數字和c語言其他資料型別的指標外,指標也能夠被宣告指向乙個函式 包含乙個函式的位址 指向函式的指標是可能的,因為函式名像陣列名一樣,它們本身...

C語言中的常用函式

1.strcmp函式 strcmp函式是比較兩個字串的大小,返回比較的結果。原始碼 int strcmp const char str1,const char str2 return str1 str2 一般形式是 i strcmp 字串1,字串2 其中,字串 字串 均可為字串常量或變數 i 是用於...