真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言函數(shù)名稱void c語言函數(shù)名稱的命名規(guī)則

C語言中void的作用是什么?

void的字面意思是“無類型”,void *則為“無類型指針”,void *可以指向任何類型的數(shù)據(jù)。

創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站制作、網(wǎng)站建設與策劃設計,昌圖網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設十多年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:昌圖等地區(qū)。昌圖做網(wǎng)站價格咨詢:18982081108

void真正發(fā)揮的作用在于:

(1) 對函數(shù)返回的限定;

(2) 對函數(shù)參數(shù)的限定。

轉換運算符把賦值運算符右邊的指針類型轉換為左邊指針的類型。

例如:

float *p1;

int *p2;

p1 = p2;

其中p1 = p2語句會編譯出錯,提示“'=' : cannot convert from 'int *' to 'float *'”,必須改為:

p1 = (float *)p2;

而void *則不同,任何類型的指針都可以直接賦值給它,無需進行強制類型轉換:

void *p1;

int *p2;

p1 = p2;

但這并不意味著,void *也可以無需強制類型轉換地賦給其它類型的指針。因為“無類型”可以包容“有類型”,而“有類型”則不能包

容“無類型”。道理很簡單,我們可以說“男人和女人都是人”,但不能說“人是男人”或者“人是女人”。下面的語句編譯出錯:

void *p1;

int *p2;

p2 = p1;

提示“'=' : cannot convert from 'void *' to 'int *'”。

擴展資料:

void關鍵字的使用規(guī)則:

規(guī)則一 如果函數(shù)沒有返回值,那么應聲明為void類型

在C語言中,凡不加返回值類型限定的函數(shù),就會被編譯器作為返回整型值處理。但是許多程序員卻誤以為其為void類型。例如:

add ( int a, int b )

{

return a + b;

}

int main(int argc, char* argv[])

{

printf ( "2 + 3 = %d", add ( 2, 3) );

}

程序運行的結果為輸出:

2 + 3 = 5

這說明不加返回值說明的函數(shù)的確為int函數(shù)。

林銳博士《高質量C/C++編程》中提到:“C++語言有很嚴格的類型安全檢查,不允許上述情況(指函數(shù)不加類型聲明)發(fā)生”??墒蔷幾g

器并不一定這么認定,譬如在Visual C++6.0中上述add函數(shù)的編譯無錯也無警告且運行正確,所以不能寄希望于編譯器會做嚴格的類型檢查。

因此,為了避免混亂,我們在編寫C/C++程序時,對于任何函數(shù)都必須一個不漏地指定其類型。如果函數(shù)沒有返回值,一定要聲明為void類

型。這既是程序良好可讀性的需要,也是編程規(guī)范性的要求。另外,加上void類型聲明后,也可以發(fā)揮代碼的“自注釋”作用。代碼的“自注

釋”即代碼能自己注釋自己。

規(guī)則二如果函數(shù)無參數(shù),那么應聲明其參數(shù)為void

在C++語言中聲明一個這樣的函數(shù):

int function(void)

{

return 1;

}

則進行下面的調用是不合法的:

function(2);

因為在C++中,函數(shù)參數(shù)為void的意思是這個函數(shù)不接受任何參數(shù)。

我們在Turbo C 2.0中編譯:

#include "stdio.h"

fun()

{

return 1;

}

main()

{

printf("%d",fun(2));

getchar();

}

編譯正確且輸出1,這說明,在C語言中,可以給無參數(shù)的函數(shù)傳送任意類型的參數(shù),但是在C++編譯器中編譯同樣的代碼則會出錯。在C++

中,不能向無參數(shù)的函數(shù)傳送任何參數(shù),出錯提示“'fun' : function does not take 1 parameters”。

所以,無論在C還是C++中,若函數(shù)不接受任何參數(shù),一定要指明參數(shù)為void。

規(guī)則三 小心使用void指針類型

按照ANSI(American National Standards Institute)標準,不能對void指針進行算法操作,即下列操作都是不合法的:

void * pvoid;

pvoid++; //ANSI:錯誤

pvoid += 1; //ANSI:錯誤

//ANSI標準之所以這樣認定,是因為它堅持:進行算法操作的指針必須是確定知道其指向數(shù)據(jù)類型大小的。

//例如:

int *pint;

pint++; //ANSI:正確

pint++的結果是使其增大sizeof(int)。( 在VC6.0上測試是sizeof(int)的倍數(shù))

但是大名鼎鼎的GNU(GNU's Not Unix的縮寫)則不這么認定,它指定void *的算法操作與char *一致。

因此下列語句在GNU編譯器中皆正確:

pvoid++; //GNU:正確

pvoid += 1; //GNU:正確

pvoid++的執(zhí)行結果是其增大了1。( 在VC6.0上測試是sizeof(int)的倍數(shù))

在實際的程序設計中,為迎合ANSI標準,并提高程序的可移植性,我們可以這樣編寫實現(xiàn)同樣功能的代碼:

void * pvoid;

(char *)pvoid++; //ANSI:正確;GNU:正確

(char *)pvoid += 1; //ANSI:錯誤;GNU:正確

GNU和ANSI還有一些區(qū)別,總體而言,GNU較ANSI更“開放”,提供了對更多語法的支持。但是我們在真實設計時,還是應該盡可能地迎合ANSI標準。

C語言void函數(shù)

main 函數(shù)的返回值用于說明程序的退出狀態(tài)。如果返回 0,則代表程序正常退出,否則代表程序異常退出。

在 C89中,main() 是可以接受void返回值的。在最新的 C99 標準中,只有以下兩種定義方式是正確的:

int main( void )

int main( int argc, char *argv[] )

如果你不需要從命令行中獲取參數(shù),請用 int main( void ) ;否則請用 int main( int argc, char *argv[] ) 。main 函數(shù)的返回值類型必須是 int ,這樣返回值才能傳遞給操作系統(tǒng)。

如果 main 函數(shù)的最后沒有寫return 語句的話,C99 規(guī)定編譯器要自動在生成的目標文件中(如 exe 文件)加入 return 0 ,表示程序正常退出。注意,vc6 不會在生成的目標文件中加入return 0 .不過,gcc3.2(Linux 下的 C 編譯器)會在生成的目標文件中加入return 0 。

void在c語言中什么意思?

void 被翻譯為"無類型",相應的void *?為"無類型指針"。常用在程序編寫中對定義函數(shù)的參數(shù)類型、返回值、函數(shù)中指針類型進行聲明。

void的作用

1、對函數(shù)返回的限定,這種情況我們比較常見。

2、對函數(shù)參數(shù)的限定,這種情況也是比較常見的。

C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。

C語言是僅產生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業(yè)平臺的許多計算機平臺上進行編譯。

c語言 void函數(shù)怎么調用

【void的含義】

void的字面意思是“無類型”,void

*則為“無類型指針”,void

*可以指向任何類型的數(shù)據(jù)。

void幾乎只有“注釋”和限制程序的作用,因為從來沒有人會定義一個void變量,

void真正發(fā)揮的【作用】在于:

(1)

對函數(shù)返回的限定;

(2)

對函數(shù)參數(shù)的限定。

我們知道,在定義函數(shù)時,加在函數(shù)名前的“void”表示該函數(shù)沒有返回值。但在調用時,在函數(shù)名前加“(void)”的作用又是什么呢?

最明顯的一點就是表示程序并不關心調用該函數(shù)后的返回值是什么,比如函數(shù)strcpy,我們直接用“strcpy(des_str,

src_str);”這樣的形式來調用。“(void)strcpy(des_str,

src_str);”這樣的形式還真不多見!

原因是這種寫法不針對人,也不針對編譯器,而是針對靜態(tài)代碼檢測工具,它會把函數(shù)返回值作為一項檢測標準。在某些大公司,比較重視代碼規(guī)范,若在代碼靜態(tài)檢測時需要檢測該項。此時就需要用在被調用的函數(shù)(名)前加上“(void)”這種形式來告訴靜態(tài)代碼檢測工具程序并非沒有處理該函數(shù)的返回值,而是該處確實不需要處理它(該函數(shù)的返回值),不需要再對該處代碼作此項檢測。其實這和我們在代碼中使用“#pragma

warning

(disable:

XXXX)”的道理是一樣的。

l例如:

統(tǒng)計整數(shù)里面各位

1

2

3

的個數(shù)

//***************************************************

#

include

stdio.h

int

c1,

c2,

c3;

void

fun(long

n)

{

c1

=

c2

=

c3

=

0;

while

(n

!=

0)

{

switch

(n

%

10)

{

case

1:

c1++;

break;

case

2:

c2++;

break;

case

3:

c3++;

}

n

/=

10;

}

}

int

main()

{

long

n;

scanf("%ld",

n);

//輸入整數(shù)n

fun(n);

//調用自定義函數(shù)fun

printf("C1=%d

C2=%d

C3=%d\n",

c1,

c2,

c3);

//輸出

}

C語言當中 void在函數(shù)名前面是空類型,這個空類型是指無返回值還是說返回值類型任意???求解,謝謝啦。

空類型確實是無返回值。

不過由于不同編譯器規(guī)則不一樣,void空返回不一定是通用于各種編譯器的,所以這樣寫出來的程序的移植性能很差,而且,標準C文件里并沒有把void寫進去。

所以,寫程序的時候即便沒什么用,也最好以指定返回類型為int,在代碼末尾加上一句return 0;即可。

C語言中,函數(shù)前加void是什么意思?

每個函數(shù)都做一件事,事情做完的話最好告訴別人,函數(shù)也是,fun就是一個人,后面括號里面的就是傳入?yún)?shù),也就是別人叫你做的事,fun前面的是返回值,就是你告訴別人這件事做的怎么樣了,void類型就是空類型,做完了不告訴別人,在函數(shù)里面return

;就行了。寫個簡單的例子

int

add(int

a,int

b)

{

return

a+b;

}

這個就是把a+b的結果傳出去,因為是int行,所以返回值也是int型,就用int了


分享標題:c語言函數(shù)名稱void c語言函數(shù)名稱的命名規(guī)則
瀏覽地址:http://weahome.cn/article/doosdgo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部