⑴ c語言兩個不同的c文件可以定義相同的函數簽名嗎
加上static修飾就可以,這樣只能在當前c文件中使用。
⑵ C語言是跨平台的么如果是 那麼C語言的跨平台特性和java的跨平台特性有什麼不同
標准C和標准C++都是源代碼級跨平台的, 也就是說你用標准C/C++寫的代碼在windows下編譯後就可以windows下運行, 在unix/linux下編譯後就可以在unix/linux下運行.c語言能跨平台主要因為各個平台包括DOS,Windows,Linux,UNIX等都有c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能(不包括跨平台的系統調用)。但是這些二進制文件不一樣,Linux中的可執行文件一般情況下都不能在Windows中運行,因為他們是兩個完全不同的操作系統,有不同的內核,不同的系統調用。但編譯器會根據不同的平台生成不同的代碼,使二進制文件能在專有的平台中運行,並且實現相同的功能。
總之,C的源代碼是跨平台的而編譯後的目標文件和可執行文件就不是跨平台的,跨平台主要是靠各個平台上的編譯器。
在使用匯編語言的時代里,每個廠家都有一套自己的匯編語言,那時計算機程序與機器綁定,不是同一個廠家的程序在其他廠家的平台下就不能運行。直到C語言出現以後,我們才能將X86平台下的C語言程序源文件,換到POWER平台編譯以後直接運行。因此C的跨平台移植功能是指在硬體架構上的移植性。 JAVA的跨平台能力是指其不需要指定操作系統可以直接運行。
C語言「一次編寫,到處編譯」,Java是「一次編譯,到處運行」。
如C++創始人酸溜溜的說法,JVM造了一個新的平台,讓所有Java程序只能在這個平台上運行,而C和C++的代碼可以在幾十個不同的平台上運行,從這個角度而言,C和C++是跨平台的,而Java不是。
⑶ 怎麼把兩個不同程序合到一起(c語言)
你問的問題好大,要合並兩份獨立的c語言代碼,
第一,要把兩份代碼里的main入口合並為一個,
如何合並要看你期望合並後的main函數實現什麼樣的功能,
例如,A程序是實現計算一個數組里的所有數相加後的和的值的功能;
B程序是實現輸出任意數字到一個txt文件的功能。那麼合並A和B程序後,
一般就是將B程序里的main函數里的實現內容追加到A程序里的main函數的實現內容之後,
就算是合並後的main函數的內容了。
希望你具體問題具體分析。
第二,合並過程中要確認兩份代碼有沒有標識符命名上的重復的問題。
例如兩份代碼里的公開函數名有沒有相同的,如果相同的話肯定要改成不同的。
第三,在確認了前兩點後,接著確認編譯鏈接不出錯。
第四,鏈接成功後,確認運行動作是否符合期望。
當然,實際項目中合並兩份代碼,往往不是上面這樣做了就可以了。還涉及到兩個程序中的功能的合並之類的比較復雜的工作。實踐出真知,希望你多做項目來收獲心得。
⑷ C語言中,同一個變數或數組里的內容可以分別賦值給另外兩個甚至多個不同的變數或數組嗎具體要怎麼做呢
是可以的,因為變數在賦值的時候只是將這個變數內的數據復制一份,放到另一個要賦值的變數中。
如
int a=0,b,c;
b=a;
c=a;
在執行完上述語句後,a,b,c都等於0。
再如
int a[5]={1,2,3,4,5},b[5],c[5];
for(int i=0;i<5;i++)
b[i]=a[i];
for(int i=0;i<5;i++)
c[i]=a[i];
在執行完上述語句後,a,b,c都等於{1,2,3,4,5}
⑸ C語言中.怎麼同時執行兩個不同的循環
這個要用到多線程了,給你個例子:
#include<stdio.h>
#include<conio.h>
#include<Windows.h>
#include<process.h>
charc=0;
VOIDB(PVOIDp)//線程B
{
while(1)
{
if(c=='b'||c=='B')
break;
printf("BBB");
Sleep(200);//延時
}
}
VOIDC(PVOIDp)//線程C
{
while(1)
{
if(c=='c'||c=='C')
break;
printf("CCC");
Sleep(300);
}
}
voidA()
{
_beginthread(B,0,0);//啟動B
_beginthread(C,0,0);//啟動C
}
intmain()
{
A();
printf("按B結束B,按C結束C,按Q退出 ");
while(1)
{
c=getch();
if(c=='q'||c=='Q')
break;
}
return0;
}
⑹ c語言將兩個初始變數綁定在一起來合為一個整體變數
寫一個結構體,比如:
structtStudent
{
intnumber[300];
charname[300];
};
⑺ C語言 ,一個程序里兩個不同結構體里的變數名能相同嗎用的時候會發生內存錯誤嗎
訪問結構體的成員變數的方式是結構體變數名.成員變數名或結構體指針名->成員變數名,所以兩個不同的結構體當中的成員變數不會有命名沖突。
⑻ 關於c語言如何捆綁上下左右四個鍵
上下左右沒有對應的ascii碼。在按下方向按鍵的時候會out組合碼,也就是一次按鍵,兩個getch都會有值。
代碼修改成
===============
#include
void
main()
{
int
c,d;
c
=
getch();
d
=
getch();
printf("[
%d
%d
]\n",c,d);
}
===============
得到以下結果
[
224
72
]
[
224
80
]
[
224
75
]
[
224
77
]
參照http://..com/question/144253607.html,會有一個更方便的代碼,讓你連續獲取ascii。
⑼ c語言編程中,同一個變數能否被重復定義成兩種不同類型
在同一塊代碼區域中,不允許有同名變數!
在不同的代碼區,可以!
如:
定義一個全局變數:
int a=10;
再定義一個局部變數:
void func()
{
char *a="hello";
}
這樣是可以的。
⑽ c語言中,能定義兩個名相同的,但是參數不同的函數嗎
不可以的,c語言翻譯成匯編,函數名中不帶參數的信息,但是c++翻譯成匯編後,每一個函數的名字除了包含了函數名,還包含了函數的參數信息