当前位置:首页 » 编程语言 » c语言foo是什么函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言foo是什么函数

发布时间: 2023-03-28 06:40:49

① 编程中常见的Foo,是什么意思

简铅虚备单来说,foo就是习惯性用来做示例的类名或者函数方法名,指代一个没有特定意义的实体。
就像我们想拿人举例子,总要先起个名字,然后就喜欢用什么:张三,李四之类的。
真说意义呢?一般foo就是乱七八糟的意思,你随便写一个不成熟的或者不在框架内的小类,方法,函数等,就可以用这槐毁个名,你也可以用abc这些词代替,但是大家习惯这样,你最好也这样,大家都好理解。
反之,如果你要写一个有特定意义或者功能的类,方法,函数时,使用的名称最好跟誉渣他实现的功能有关联,这样程序比较易读。

c语言中“void foo(void)”和“void foo()”哪种写法比较好啊

void foo(void);
上面语句是表示函数不接收参数的正确写法,在C和C++中都是正确皮尘的。
但是。
void foo();
在C和C++中有不同的意义。在C中void foo()表示foo函数可以接收任意长度的未知类型参数,而衫咐void foo()和void foo(void)在C++的意义是燃塌禅一样的。可以到秒秒学上看看相关的内容,我也是从那上面学来的。

③ 英语foo是什么意思

英语foo是占位符的意思。

格式占位符(%)是在没没C/C++语言中格式输入函数,如scanf、printf等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。

C语言中的格式占位符:

%a,%A读入一个浮点值(仅C99有效)

%c读入一个字符

%d读入十进制整数

%i读入十进制,八进制,十六进制整数

(3)c语言foo是什么函数扩展阅读

应用——

用于幻灯片上,就表现为一个虚框,虚框内部往往有“单击此处添加标题”之类的提示语,一旦鼠标点击之后,提示语会自动消失。当我们要创建自己的模板时,占位符就显得非常重要,它能起到规划幻灯片结构的作用。

用于文档排版的方面,就是当你决定要在版枯搜纳面的一个地方放一张图片或其他东西的时候并且你有多种选择一时决定不了,你就可以先放一个漏冲图像占位符设置好宽高,待你以后决定好了再来放入需要的图片。

④ C语言里的foo是什么

foo没有具体意昌信唯思,一般用作一个变量或函数的代号,和x、y啊,a、b啊一样,没有什么意思,一般用在解释语法教学书籍或是文档里,实际中为了代码可读性一般不会用foo作函数名。
比如
int
foo;
就是生命一个int型的变量。
其他语言也一样,经常用foo来解释语法。
这里只是表耐培示调用了坦态一个叫foo的函数,三个参数是c、b、a,仅此而已。
为什么书里都喜欢用foo呢?可以网络foo。

⑤ c语言中cont<<foo(3)<<""<<foo(3,5)<<""<<foo(3,5,7);这句是什么意思

是不是打错了, cout吧 ,c++用来打印的输出语句,如果是的话

⑥ C语言,哪位大神帮忙解释一下下面这个C的申明是什么意思。

这个分开来一步一步看,先看后面的一个括号(double, ....),它就是一个函数申明中的参数部分,这里型吵拦你应该也明白;然后到前面的那个复杂的括号,在函数名的申明中用了(*foo( ……)),foo就是应该函数指针,用了指向某一个函数,而它卜胡的值也是调用函数来的得到的,这个函数就是 foo( double(*) (double, double[ ]), double ),它有两个参数,double(*) (double, double[ ])和double,而double(*) (double, double[ ])也是一个函数,它的返回值就是碰渗double *也就double型的指针,它的参数是double和一个double的数组,也就是这个函数的申明

⑦ 怎样在c程序里面调用其他程序

C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误。要解决这个问题,就要在 C++文件里面显示声明一下哪些函数是C写的,要用C的方式来处理。
1.引用头文件前需要加上 extern “C”,如果引用多个,那么就如下所示
extern “C”
{
#include “ s.h”
#include “t.h”
#include “g.h”
#include “j.h”
};
然后在调用这些函数之前,需要将函数也全部声明一遍。
2.C++调用C函数的方法,将用到的函数全部重新声明一遍
extern “C”
{
extern void A_app(int);
extern void B_app(int);
extern void C_app(int);
extern void D_app(int);
}
C++程序中调用被c编译器编译后的函数,为什么要加extern "C"?
C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C语言的不同。假设某个C 函数的声明如下:
void foo(int x, int y);
该函数被C 编译器编译后在库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字用来支持函数重载和类型安全连接。由于编译后的名字不同,C++程序不能直接调用C 函数。C++提供了一个C 连接交换指定符号extern“C”来解决这个问题。例如:
extern “C”
{
void foo(int x, int y);
// 其它函数
}
或者写成
extern “C”
{
#include “myheader.h”
// 其它C 头文件
}
这就告诉C++编译译器,函数 foo 是个C 连接,应该到库中找名字_foo 而不是找_foo_int_int。C++编译器开发商已经对C 标准库的头文件作了extern“C”处理,所以我们可以用#include 直接引用这些头文件。

⑧ c++中的external function什么意思

在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可含睁以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明extern int v,还取决于变量v本身是能够被引用到的。这涉及到c语言的另外一个话题--变量的作用域。能够被其他模块以extern修饰符引用到的变量通常是全局变量。还有很重要的一点是,extern int v可以放在a.c中的任何地方,比如你可以在a.c中的函数fun定义的开头处声明extern int v,然后就可以引用到变量v了,只不过这样只能在函数fun作用域中引用v罢了,这还是变量作用域的问题。对于这一点来说,很多人使用的时候都心存顾虑。好像extern声明只能用于文件作用域似的。

2. extern修饰函数声明。从本质上来讲,变量和函数没有区别。函数名是指向函数二进制块开头处的指针。如果文件a.c需要引用b.c中的函数,比如在b.c中原型是int fun(int mu),那么就可以在a.c中声明extern int fun(int mu),然后就能使用fun来做任何事情。就像变量的声明一样,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的文件作用域的范围中。对其他模块中函数的引用,最常用的方法是包含这些函数声明的头文件。使用extern和包含头文件来引用函数有什么区别呢?extern的引用方式比包含头文件要简洁得多!extern的使用方法是直接了当的,想引用哪个函数就用extern声明哪个函数。这大概是KISS原则的一种体现吧!这样做的一个明显的好处是,会加速程序的编译(确切的说是预处理)的过程,节省时间。在大型C程序编译过程中,这种差异是非常明显的。

extern "C"的含义

extern "C" 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的谈粗岁;其次,被它修饰的目标是“C”的。
被extern "C"限定的函数或变量是extern类型的;
被extern "C"修饰的变量和函数是按照C语言方式编译和链接的

首先看看C++中对类似C的函数是怎样编译的。
作为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为:
void foo( int x, int y );
该函数被C编译器编译后在符号库中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字(不同的编译器可能生成的名字不同,但是都采用了相同的机制,生成的新名字称为“mangled name”)。
_foo_int_int这样的名字包含了函数名、函数参数数量及类型信息,C++就是靠这种机制来实现函数重载的。 例如,在C++中,函数void foo( int x, int y )与void foo( int x, float y )编译生成的符号是不相同的,后者为_foo_int_float。
同样地,C++中的变量除支持局部变量外,还支持类成员变量和全局变量。用户所编写程序的类成员变量可能与全局变量同名,我们以"."来区分。而本质上,编译器在进行编译时,与函数的处理相似,也为类中的变量取了一个独一无二的名字,这个名字与用户程序中同名的全局变量名字不同。

举例说明
(1)未加extern "C"声明时的连接方式
假设在C++中,模块A的头文件如下:
// 模块A头文件moleA.h
#ifndef MODULE_A_H
#define MODULE_A_H
int foo( int x, int y );
#endif
//在模块B中引用该函数:
// 模块B实现文件moleB.cpp
#include "moleA.h"
foo(2,3);

实际上,在连接阶段,链接器凳樱会从模块A生成的目标文件moleA.obj中寻找_foo_int_int这样的符号!

(2)加extern "C"声明后的编译和链接方式
加extern "C"声明后,模块A的头文件变为:
// 模块A头文件moleA.h
#ifndef MODULE_A_H
#define MODULE_A_H
extern "C" int foo( int x, int y );
#endif

在模块B的实现文件中仍然调用foo( 2,3 ),其结果是:

<1>A编译生成foo的目标代码时,没有对其名字进行特殊处理,采用了C语言的方式;

<2>链接器在为模块B的目标代码寻找foo(2,3)调用时,寻找的是未经修改的符号名_foo。

如果在模块A中函数声明了foo为extern "C"类型,而模块B中包含的是extern int foo(int x, int y),则模块B找不到模块A中的函数;反之亦然。

extern “C”这个声明的真实目的是为了实现C++与C及其它语言的混合编程。

⑨ C语言中输出1FFOO是怎样回事

m的地址(假定地址
传递给
p(p=m),
m
地址原来寄存的‘值’是0,在函数foo中修改FF00中的‘值’变成100,返回主函数printf(m:
%d,
n:
%d,
m,
n);
输出
m
的地址(FFOO)里的值。
令1种方法是函数本漏李身有返回值:
#include
stdio.h
foo(int
p)
{
p
=
100;
return
p;
/*不可少*/
}
int
main()
{
int
m
=
0,k;
k=foo(m);
printf(result:
%d
,k);
/*或
printf(m:
%d,foo(m));可以省略k变量*/
printf(m:
%d\n\n,m);
/*输出
0
*/
}
其中
m
给函数p的只是1个拷贝,p形参返答迟m实参,p没举拦法改变m的值,由于p所在的地址不是(FF00)。
结果:result:100
m:0

⑩ C语言中 void foo是什么意思啊

void foo()是指:声明一个函数foo,不带回返回值