Ⅰ c語言中的函數可不可以單獨進行編譯
是可以的。
庫函數是把函數放到庫里,供別人使用的一種方式。函數庫是由系統建立的具有一定功能的函數的集合。庫中存放函數的名稱和對應的目標代碼,以及連接過程中所需的重定位信息。用戶也可以根據自己的需要建立自己的用戶函數庫。
使用C語言的語句直接計算sin或cos函數,就需要編寫頗為復雜的程序。因為C語言的語句中沒有提供直接計算sin或cos函數的語句。又如為了顯示一段文字,我們在C語言中也找不到顯示語句,只能使用庫函數printf。
(1)c語言的函數單獨編譯擴展閱讀
函數庫的分類
1、字元串、內存和字元函數
需要的包含文件:string.h、mem.h、ctype.h或string.h;
2、數學函數
需要的包含文件:math.h;
3、動態存儲分配
需要的包含文件:alloc.h或stdlib.h ;
Ⅱ C語言怎麼將各計算功能單獨編寫成函數還有主函數怎麼編
#include<stdio.h>
#include<math.h>
#define PI 3.1415
void sx()/*計算扇形面積及周長*/
{ float r,j,S,C;
do{
printf("請輸入半徑r=");
scanf("%f",&r);
printf("請輸入角度(360制)j=");
scanf("%f",&j);
}while(r<0||j<0);
/*運算*/
S=PI*r*r*j/360;
C=2*PI*r*j/360+2*r;
printf("該扇形面積S=%f\n周長C=%f\n",S,C);
}
void wb()/*計算正5邊形面積及周長*/
{ float a,S,C;
do{
printf("請輸入邊長a=");
scanf("%f",&a);
}while(a<0);
/*運算*/
S=1.72*a*a;
C=5*a;
printf("該正5邊形面積S=%f\n周長C=%f\n",S,C);
}
void lb()/*計算正6邊形面積及周長*/
{ float a,S,C;
do{
printf("請輸入邊長a=");
scanf("%f",&a);
}while(a<0);
/*運算*/
S=2.598*a*a;
C=6*a;
printf("該正6邊形面積S=%f\n周長C=%f\n",S,C);
}
void qg()/*計算球冠表面積及體積*/
{ float r,h,S,V;
do{
printf("請輸入半徑r=");
scanf("%f",&r);
printf("請高度h=");
scanf("%f",&h);
}while(r<0||h<0);
/*運算*/
if(h<=r)
{
S=2*PI*r*h;
V=PI*(h*h)*(r-h/3);
}
else
{
S=4*PI*r*r-2*PI*r*h;
V=(4/3)*PI*r*r*r-PI*(h*h)*(r-h/3);
}
printf("該球冠面積S=%f\n體積V=%f\n",S,V);
}
void smt()/*計算正4面體的表面積及體積。*/
{ float a,S,V;
do{
printf("請輸入邊長a=");
scanf("%f",&a);
}while(a<0);
/*運算*/
S=a*a*sqrt(3);
V=0.11111111*(S/4)*a*sqrt(6);
printf("該正4面體面積S=%f\n體積V=%f\n",S,V);
}
void zy()/*計算正圓面積及周長*/
{ float r,S,C;
do{
printf("請輸入半徑r=");
scanf("%f",&r);
}while(r<0);
/*運算*/
S=PI*r*r;
C=2*PI*r;
printf("該正圓面積S=%f\n周長C=%f\n",S,C);
}
void main()
{ int a;
char c;
do{
printf("請選擇計算對象(選擇數字)\n");
printf("1:扇形 2:正5邊形 3:正6邊形 4:球冠 5:正4面體 6:正圓\n");
scanf("%d",&a);
switch(a)
{
case 1:sx();break;
case 2:wb();break;
case 3:lb();break;
case 4:qg();break;
case 5:smt();break;
case 6:zy();
}
printf("是否繼續(y or n)\n");
scanf("%s",&c);
}while(c=='y');
}
Ⅲ 在C語言程序中,只有main函數才可單獨進行編譯,哪裡錯了
有函數的都可以單獨進行編譯,編譯是指把程序語句翻譯為機器代碼,對於C語言就是把.c文件翻譯為.obj文件。
此外,必須要有main函數的才可以完成連接為exe文件。
Ⅳ c語言學函數可以單獨進行編輯嗎
不能,因為每一個C源程序都必須有一個主函數
Ⅳ c語言程序中將一個演算法單獨寫成函數與直接寫在主函數中相比,運行起來前者是不是要比後者耗時更久
Ⅵ 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的話就是調用函數的功能
Ⅶ c語言課程設計里怎樣把一個函數單獨拿出來運行
想單獨拿來運行,自己新建工程,建文件,寫一個main入口函數,然後把這個函數復制main函數上面(不需要聲明),或者下面(需要聲明),最後在main里調用函數就可以了。
調用一個函數語言先了解其返回值和參數。在函數名左邊的就是返回值類型(表示調用的時候用什麼類型變數來接收,如不需要處理返回值,也可以不接收)。在函數右邊的括弧里就是參數,逗號分割,你要根據參數個數和類型在調用時括弧里寫對應的值或者變數。
Ⅷ c語言把自定義函數單獨放在一個文件中是什麼y意思vs2015中如何實現
就是把函數定義寫在一個與主函數文件不同的文件里,將這個文件名定義為頭文件(.h),在主函數所在文件中包含這個頭文件即可。
Ⅸ c語言中的函數可不可以單獨進行編譯為什麼
因為C語言中你編寫的函數中用到了基本的比如輸出,定義這些,這些都是頭文件裡面寫好的,如果你要單獨編譯,可以自己把這些東西定義在一個文件中,自己重新寫一遍,另外還得編譯器支持。
Ⅹ c語言中 如何單獨運行一個子函數啊或者說怎樣驗證一個子函數的正確性、以及其功能啊求助···
在main()中寫入你的子函數及其參數,觀察是否達到預期就行了。給一個簡單的解決方法,希望幫到你!