1. 請教,如何用C語言編寫一個函數。
一個函數(function)是一個可以從程序其它地方調用執行的語句塊。以下是函數定義格式:
type name ( argument1, argument2, ...) statement
說明:
type 是函數返回的數據的類型
name 是函數被調用時使用的名
argument 是函數調用需要傳入的參量(可以聲明任意多個參量)。每個參量(argument)由一個數據類型後面跟一個標識名稱組成,就像變數聲明中一樣(例如,int x)。參量僅在函數范圍內有效,可以和函數中的其它變數一樣使用, 它們使得函數在被調用時可以傳入參數,不同的參數用逗號(comma)隔開.
statement 是函數的內容。它可以是一句指令,也可以是一組指令組成的語句塊。如果是一組指令,則語句塊必須用花括弧{}括起來,這也是我們最常見到情況。其實為了使程序的格式更加統一清晰,建議在僅有一條指令的時候也使用花括弧,這是一個良好的編程習慣。
示例:每一個C語言程序有且只有一個main函數,本身main就是一個函數。結合上面的格式,自己理解一下。
intmain()
{
return0;
}
2. c語言調用其他文件的函數怎麼編譯
調用函數庫的話用#include<XXX.h>或者#include"XXX.h"區別是你庫文件放在同一個文件夾還是在IDE的安裝目錄下面,如果你庫文件在你工程文件夾裡面用#include<XXX.h>,否則用#include"XXX.h"
如果你說自己寫庫的話是需要兩個宏命令,#ifndef_XXX_H#define_XXX_H,然後你函數名用extern表示
如果你說編譯的話,你應該說的是編譯原理吧,你可以反匯編一下一個編譯好的程序,如果該處編譯了一個其他函數庫的函數,你可以看到程序把參數PUSH到內存後CALL或者LCALL了一個這個函數的地址,這就完成了匯編中調用函數的部分,我記得X86裡面CALL的機器碼是E8H吧,有興趣的話可以自己用反匯編看一下
這個CALL的話就是調用函數的功能
3. c語言編寫一個函數
C語言中一個完整的函數由函數首部和函數體構成,而且定義函數時兩者都是必不可少的。函數定義的一般形式如下:類型標識符 函數名(形參表列) // 這是函數首部 // 以下{ }內的是函數體 { 說明部分執行部分 } 舉例說明如下: // 定義一個不帶返回值的函數 // 函數功能:輸出形參的值 void fun(int a, int b) { printf("%d, %d\n", a, b); } // 定義一個帶返回值的函數 // 函數功能:返回2個整數數的最大值 int fun(int a, int b) { return a>b ? a : b; }
4. c語言如何編寫自己的函數
前面弄的那個格式錯亂了!所以重新弄了一遍,這次應該沒問題了!
(1)無參函數的定義一般形式:
類型說明符 函數名()
{
類型說明符
語句
}
例如: void Hello()
{
printf("Hello,world");
}
(2)有參函數的定義一般形式:
類型說明符 函數名(形式參數表)
{
類型說明符
語句
}
例如: int max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
其中類型說明符指明了本函數的類型,函數的類型實際上是函數返回值的類型,它們通常是C語言的
基本數據類型.
5. C語言庫函數如何編寫
自己可以編寫一個頭文件的,而且編寫好之後放到編譯器安裝目錄下的include目錄裡面,在以後編寫程序的時候就可以#include <filename.h>了。比如編寫一個頭文件:
color.h:
#include <Windows.h>
void SetColor (size_t num)
{
HANDLE Consolehwnd;
Consolehwnd = GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleTextAttribute (Consolehwnd, num);
}
在以後的程序中#inlcude <color.h>是可以的。但是注意只能在自己的編譯器中運行哦。
6. c多個文件如何編譯
關於整個 C 語言中的主函數 main( ) 如何調用相關的頭文件(*.h)、以及調用其它獨立的模塊(*.c)的方法,關鍵在於對於如何編寫 makefile 文件的真正理解、以及真正掌握編寫規則。
由於我已經有很多年沒有編寫過 C 語言源程序、以及編寫 makefile 文件了,但是可以大概給你提供一個思路就是:
下面的文本文件假設以 my_makefile 為例,編譯環境為 Linux 系統,C 語言編譯器為 gcc。
但是在這里注意一點:我的 my_makefile 文件中的注釋語句是否是分號進行注釋,我已經不太記得了,這個需要自己再參考一下。
另外就是:對源文件(*.c)、以及生成可執行文件(my_runfile)在 my_makefile 文件中的前後次序,我也記不清了,僅供參考。
myprog1.o: myprog1.c ; myprog1.o 的生成依賴於 myprog1.c 這個源程序
gcc -c myprog1.c ; 使用 Linux 系統的 C 語言編譯器對 myprog1.c 只編譯、不鏈接
myprog2.o: myprog2.c ; myprog2.o 的生成依賴於 myprog2.c 這個源程序
gcc -c myprog2.c ;使用 Linux 系統的 C 語言編譯器對 myprog2.c 只編譯、不鏈接
my_runfile: myprog1.o myprog2.o ; 可執行文件 my_runfile 的生成依賴於 myprog1.o、myprog2.o 這兩個目標文件
gcc -o my_runfile myprog1.o myprog2.o ; 使用 cc 的 -o 選項生成用戶自定義的可執行文件:my_runfile,如果不指定 -o 選項,cc 編譯器生成的預設可執行文件名為:a.out
運行命令為:
$make -f my_makefile (使用 -f 選項代替預設的 make 文件名 makefile)
7. 如何在C語言中定義一個函數
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
8. 關於C語言,編寫一個函數
#include <stdio.h>
int fun(int a[],int n,int b[],int c[])
{
int i,j,count=0,temp;
for(i=0;i<n;i++)
{
if(a[i]>-20)
{
b[count]=a[i];
c[count]=a[i];
count++;
}
}
for(i=0;i<count;i++)
for(j=0;j<count;j++)
if(c[i]>c[j])
{
temp=c[i];
c[i]=c[j];
c[j]=temp;
}
return count;
}
void main()
{
int a[10] = {12, -10, -31, -18, -15, 50, 17, 15, -20, 20};
int b[10]={0},c[10]={0};
int count,i;
for(i=0;i<10;i++)
printf("%d\t",a[i]);
printf("\n");
count = fun(a,10,b,c);
for(i=0;i<count;i++)
printf("%d\t",b[i]);
printf("\n");
for(i=0;i<count;i++)
printf("%d\t",c[i]);
printf("\n");
}
9. C語言編寫函數
#include<stdio.h>
intdelnum(inta[],intnum,intn);
intmain()
{
inta[4]={1,2,3,4},i;
intlen=delnum(a,3,4);
printf("修改後的數組為: ");
for(i=0;i<len;i++)
printf("%d",a[i]);
printf(" 該數組長度:%d",len);
}
intdelnum(inta[],intnum,intn)
{
inti,j,temp;
for(i=0;i<n-1;++i)
{
if(a[i]==num)
for(j=i;j<n;++j)
a[j]=a[j+1];
}
return(n-1);
}