原來C語言是不支援引用傳遞的

2021-08-29 17:35:13 字數 430 閱讀 6421

寫了個結構體的小測試,個結果發現c語言是不支援按址傳遞的

#include

#include

typedef struct strstr;

int giveinfo(str &str);

int main()

int giveinfo(str &str)

開始我用gcc編譯 gcc -o struct struct.c

總是出現錯誤:

struct.c:9: 錯誤:expected 『;』, 『,』 or 『)』 before 『&』 token

struct.c:19: 錯誤:expected 『;』, 『,』 or 『)』 before 『&』 token

怎麼改都不行,後來我就用g++編譯就成功了。

C語言支不支援過載?

首先這個問題的答案是c 支援函式過載而c語言不支援函式過載。下面我們從程式編譯鏈結階段看看其中的原因。先看看過載的定義,函式過載就是指 在同一作用域類,一組函式的函式名相同,引數列表不同 個數不同或型別不同 返回值可同可不同。那麼問題來了,為什麼c 支援函式過載,而c語言不支援呢?從 的編譯到執行,...

為什麼C 支援函式過載而C語言不支援?

gcc和g 編譯的過程類似,細節處理不一樣 list.h list.c test.c 1.預處理 標頭檔案的展開 巨集替換 條件編譯 去掉注釋 list.i test.i 2.編譯 檢查語法錯誤 生成彙編 list.s test.s 3.彙編 將彙編 轉換成對應的機器 list.o test.o 4...

C 支援函式過載,C語言不支援函式過載的原因

c 支援函式過載,c語言不支援函式過載的原因?函式過載 在同一作用域內,一組具有不同引數列表的同名函式。通常情況,這組函式具有相似的功能,函式過載有效解決了只由於引數型別不同而造成的函式名數量膨脹問題。而c 支援函式過載,c不支援函式過載的原因是 c 在編譯過程中對函式的重新命名規則是 函式名 引數...