當前位置:首頁 » 編程語言 » c語言foo是什麼函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言foo是什麼函數

發布時間: 2023-03-28 06:40:49

① 編程中常見的Foo,是什麼意思

簡鉛虛備單來說,foo就是習慣性用來做示例的類名或者函數方法名,指代一個沒有特定意義的實體。
就像我們想拿人舉例子,總要先起個名字,然後就喜歡用什麼:張三,李四之類的。
真說意義呢?一般foo就是亂七八糟的意思,你隨便寫一個不成熟的或者不在框架內的小類,方法,函數等,就可以用這槐毀個名,你也可以用abc這些詞代替,但是大家習慣這樣,你最好也這樣,大家都好理解。
反之,如果你要寫一個有特定意義或者功能的類,方法,函數時,使用的名稱最好跟譽渣他實現的功能有關聯,這樣程序比較易讀。

c語言中「void foo(void)」和「void foo()」哪種寫法比較好啊

void foo(void);
上面語句是表示函數不接收參數的正確寫法,在C和C++中都是正確皮塵的。
但是。
void foo();
在C和C++中有不同的意義。在C中void foo()表示foo函數可以接收任意長度的未知類型參數,而衫咐void foo()和void foo(void)在C++的意義是燃塌禪一樣的。可以到秒秒學上看看相關的內容,我也是從那上面學來的。

③ 英語foo是什麼意思

英語foo是佔位符的意思。

格式佔位符(%)是在沒沒C/C++語言中格式輸入函數,如scanf、printf等函數中使用。其意義就是起到格式佔位的意思,表示在該位置有輸入或者輸出。

C語言中的格式佔位符:

%a,%A讀入一個浮點值(僅C99有效)

%c讀入一個字元

%d讀入十進制整數

%i讀入十進制,八進制,十六進制整數

(3)c語言foo是什麼函數擴展閱讀

應用——

用於幻燈片上,就表現為一個虛框,虛框內部往往有「單擊此處添加標題」之類的提示語,一旦滑鼠點擊之後,提示語會自動消失。當我們要創建自己的模板時,佔位符就顯得非常重要,它能起到規劃幻燈片結構的作用。

用於文檔排版的方面,就是當你決定要在版枯搜納面的一個地方放一張圖片或其他東西的時候並且你有多種選擇一時決定不了,你就可以先放一個漏沖圖像佔位符設置好寬高,待你以後決定好了再來放入需要的圖片。

④ C語言里的foo是什麼

foo沒有具體意昌信唯思,一般用作一個變數或函數的代號,和x、y啊,a、b啊一樣,沒有什麼意思,一般用在解釋語法教學書籍或是文檔里,實際中為了代碼可讀性一般不會用foo作函數名。
比如
int
foo;
就是生命一個int型的變數。
其他語言也一樣,經常用foo來解釋語法。
這里只是表耐培示調用了坦態一個叫foo的函數,三個參數是c、b、a,僅此而已。
為什麼書里都喜歡用foo呢?可以網路foo。

⑤ c語言中cont<<foo(3)<<""<<foo(3,5)<<""<<foo(3,5,7);這句是什麼意思

是不是打錯了, cout吧 ,c++用來列印的輸出語句,如果是的話

⑥ C語言,哪位大神幫忙解釋一下下面這個C的申明是什麼意思。

這個分開來一步一步看,先看後面的一個括弧(double, ....),它就是一個函數申明中的參數部分,這里型吵攔你應該也明白;然後到前面的那個復雜的括弧,在函數名的申明中用了(*foo( ……)),foo就是應該函數指針,用了指向某一個函數,而它卜胡的值也是調用函數來的得到的,這個函數就是 foo( double(*) (double, double[ ]), double ),它有兩個參數,double(*) (double, double[ ])和double,而double(*) (double, double[ ])也是一個函數,它的返回值就是碰滲double *也就double型的指針,它的參數是double和一個double的數組,也就是這個函數的申明

⑦ 怎樣在c程序裡面調用其他程序

C++和C是兩種完全不同的編譯鏈接處理方式,如果直接在C++裡面調用C函數,會找不到函數體,報鏈接錯誤。要解決這個問題,就要在 C++文件裡面顯示聲明一下哪些函數是C寫的,要用C的方式來處理。
1.引用頭文件前需要加上 extern 「C」,如果引用多個,那麼就如下所示
extern 「C」
{
#include 「 s.h」
#include 「t.h」
#include 「g.h」
#include 「j.h」
};
然後在調用這些函數之前,需要將函數也全部聲明一遍。
2.C++調用C函數的方法,將用到的函數全部重新聲明一遍
extern 「C」
{
extern void A_app(int);
extern void B_app(int);
extern void C_app(int);
extern void D_app(int);
}
C++程序中調用被c編譯器編譯後的函數,為什麼要加extern "C"?
C++語言支持函數重載,C語言不支持函數重載。函數被C++編譯後在庫中的名字與C語言的不同。假設某個C 函數的聲明如下:
void foo(int x, int y);
該函數被C 編譯器編譯後在庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字用來支持函數重載和類型安全連接。由於編譯後的名字不同,C++程序不能直接調用C 函數。C++提供了一個C 連接交換指定符號extern「C」來解決這個問題。例如:
extern 「C」
{
void foo(int x, int y);
// 其它函數
}
或者寫成
extern 「C」
{
#include 「myheader.h」
// 其它C 頭文件
}
這就告訴C++編譯譯器,函數 foo 是個C 連接,應該到庫中找名字_foo 而不是找_foo_int_int。C++編譯器開發商已經對C 標准庫的頭文件作了extern「C」處理,所以我們可以用#include 直接引用這些頭文件。

⑧ c++中的external function什麼意思

在C語言中,修飾符extern用在變數或者函數的聲明前,用來說明「此變數/函數是在別處定義的,要在此處引用」。

1. extern修飾變數的聲明。舉例來說,如果文件a.c需要引用b.c中變數int v,就可含睜以在a.c中聲明extern int v,然後就可以引用變數v。這里需要注意的是,被引用的變數v的鏈接屬性必須是外鏈接(external)的,也就是說a.c要引用到v,不只是取決於在a.c中聲明extern int v,還取決於變數v本身是能夠被引用到的。這涉及到c語言的另外一個話題--變數的作用域。能夠被其他模塊以extern修飾符引用到的變數通常是全局變數。還有很重要的一點是,extern int v可以放在a.c中的任何地方,比如你可以在a.c中的函數fun定義的開頭處聲明extern int v,然後就可以引用到變數v了,只不過這樣只能在函數fun作用域中引用v罷了,這還是變數作用域的問題。對於這一點來說,很多人使用的時候都心存顧慮。好像extern聲明只能用於文件作用域似的。

2. extern修飾函數聲明。從本質上來講,變數和函數沒有區別。函數名是指向函數二進制塊開頭處的指針。如果文件a.c需要引用b.c中的函數,比如在b.c中原型是int fun(int mu),那麼就可以在a.c中聲明extern int fun(int mu),然後就能使用fun來做任何事情。就像變數的聲明一樣,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的文件作用域的范圍中。對其他模塊中函數的引用,最常用的方法是包含這些函數聲明的頭文件。使用extern和包含頭文件來引用函數有什麼區別呢?extern的引用方式比包含頭文件要簡潔得多!extern的使用方法是直接了當的,想引用哪個函數就用extern聲明哪個函數。這大概是KISS原則的一種體現吧!這樣做的一個明顯的好處是,會加速程序的編譯(確切的說是預處理)的過程,節省時間。在大型C程序編譯過程中,這種差異是非常明顯的。

extern "C"的含義

extern "C" 包含雙重含義,從字面上即可得到:首先,被它修飾的目標是「extern」的談粗歲;其次,被它修飾的目標是「C」的。
被extern "C"限定的函數或變數是extern類型的;
被extern "C"修飾的變數和函數是按照C語言方式編譯和鏈接的

首先看看C++中對類似C的函數是怎樣編譯的。
作為一種面向對象的語言,C++支持函數重載,而過程式語言C則不支持。函數被C++編譯後在符號庫中的名字與C語言的不同。例如,假設某個函數的原型為:
void foo( int x, int y );
該函數被C編譯器編譯後在符號庫中的名字為_foo,而C++編譯器則會產生像_foo_int_int之類的名字(不同的編譯器可能生成的名字不同,但是都採用了相同的機制,生成的新名字稱為「mangled name」)。
_foo_int_int這樣的名字包含了函數名、函數參數數量及類型信息,C++就是靠這種機制來實現函數重載的。 例如,在C++中,函數void foo( int x, int y )與void foo( int x, float y )編譯生成的符號是不相同的,後者為_foo_int_float。
同樣地,C++中的變數除支持局部變數外,還支持類成員變數和全局變數。用戶所編寫程序的類成員變數可能與全局變數同名,我們以"."來區分。而本質上,編譯器在進行編譯時,與函數的處理相似,也為類中的變數取了一個獨一無二的名字,這個名字與用戶程序中同名的全局變數名字不同。

舉例說明
(1)未加extern "C"聲明時的連接方式
假設在C++中,模塊A的頭文件如下:
// 模塊A頭文件moleA.h
#ifndef MODULE_A_H
#define MODULE_A_H
int foo( int x, int y );
#endif
//在模塊B中引用該函數:
// 模塊B實現文件moleB.cpp
#include "moleA.h"
foo(2,3);

實際上,在連接階段,鏈接器凳櫻會從模塊A生成的目標文件moleA.obj中尋找_foo_int_int這樣的符號!

(2)加extern "C"聲明後的編譯和鏈接方式
加extern "C"聲明後,模塊A的頭文件變為:
// 模塊A頭文件moleA.h
#ifndef MODULE_A_H
#define MODULE_A_H
extern "C" int foo( int x, int y );
#endif

在模塊B的實現文件中仍然調用foo( 2,3 ),其結果是:

<1>A編譯生成foo的目標代碼時,沒有對其名字進行特殊處理,採用了C語言的方式;

<2>鏈接器在為模塊B的目標代碼尋找foo(2,3)調用時,尋找的是未經修改的符號名_foo。

如果在模塊A中函數聲明了foo為extern "C"類型,而模塊B中包含的是extern int foo(int x, int y),則模塊B找不到模塊A中的函數;反之亦然。

extern 「C」這個聲明的真實目的是為了實現C++與C及其它語言的混合編程。

⑨ C語言中輸出1FFOO是怎樣回事

m的地址(假定地址
傳遞給
p(p=m),
m
地址原來寄存的『值』是0,在函數foo中修改FF00中的『值』變成100,返回主函數printf(m:
%d,
n:
%d,
m,
n);
輸出
m
的地址(FFOO)里的值。
令1種方法是函數本漏李身有返回值:
#include
stdio.h
foo(int
p)
{
p
=
100;
return
p;
/*不可少*/
}
int
main()
{
int
m
=
0,k;
k=foo(m);
printf(result:
%d
,k);
/*或
printf(m:
%d,foo(m));可以省略k變數*/
printf(m:
%d\n\n,m);
/*輸出
0
*/
}
其中
m
給函數p的只是1個拷貝,p形參返答遲m實參,p沒舉攔法改變m的值,由於p所在的地址不是(FF00)。
結果:result:100
m:0

⑩ C語言中 void foo是什麼意思啊

void foo()是指:聲明一個函數foo,不帶回返回值