⑴ 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++翻译成汇编后,每一个函数的名字除了包含了函数名,还包含了函数的参数信息