c语言千位数怎么分解?
x%10的意思就是x处以10取余数,好比11%10得出是1。 x%10000/1000的意思是x处以10000取余数,此时的取值范围是0~9999,然后处以1000取整数, / 符号是取整数部分,比如1230/1000得出结果为1。
如何把C盘分出D盘?
要是XP系统,需要借助其它分区软件进行调整,如PM8
现在,你是Vista系统,使用系统自带的功能就行了。
你算是找对人,我刚使用这种方法给C盘分了些空间做为D盘!
右击 “我的电脑”点“管理”
即弹出“计算机管理”操作界面
点“磁盘管理”,过会(几秒)即显示出你电脑中各磁盘各分区的情况。
在“卷”那一列,C盘上右击,点“压缩卷”
过几秒,弹出
“压缩C”
上面有“输入压缩空间量(MB)”,这是最大的可用压缩量,你不能使用最大的值,因为要给C盘留下一些空间,点右边的下降号(三角)使它的数值变小,成为你需要的大小,比如5566(这单位是M,即5.5G)
然后,点压缩,过一会,再看C盘就多出了一个相应大小的未使用空间,你可以新建为一个分区
win10笔记本只有一个C盘,想分盘D,E,F怎么分?
1、在win10系统右击“此电脑”,选项 管理 选项;
2、在计算机管理下点击“磁盘管理”,然后在打开的右边会看到硬盘的分区及一些相关情况,具体如下:
3、选择要压缩的分区,例如:C盘,右击磁盘,然后选择“压缩卷”;
4、接着系统会自动弹出查询压缩空间的一个信息。
5、默认值为最大,可以修改为自己压缩的空间,单位为MB。 比如你想分出一个10G空间做D盘,修改数值,使其差不多10G左右的空间,点击压缩;
6、完成操作之后会自动产生一个 10GB的未分配空间;
7、对未分配的卷进行新建并格式化就可以得到一个D盘了。压缩的时候多一些,可以是100G,那么就可以新建DEF盘了。
C语言中的extern关键字是怎么用的?老师说还有个与它对应的关键字,是哪个啊?
谢邀。
在回答这个问题之前,题主应该明白,实际上程序员的工作就是把一个较复杂的需求,分解成若干个较独立的模块,然后继续把每个模块分解成若干更简单的工作,并编写C语言代码逐个实现,最后再合并完成需求。
在实际的C语言程序开发中,每一个独立模块单独占用一个文件是合适的,extern 关键字正好可以方便程序员进行多文件编程。
例如在某个项目中,text.c 负责处理文本,picture.c 负责处理图片,video.c 负责处理视频。整个项目的构成一目了然,维护很方便。
多文件编程
我们从实例出发,建立
fun.c
文件,接下来自定义函数的C语言代码都在此文件编写。再建立main.c
文件,main() 函数的代码编写在此文件中,文件布局如下图,请看:然后在 fun.c 文件里定义 add() 函数和全局变量 cnt,相关C语言代码如下,请看:
再在 main.c 文件里的 main() 函数中调用 add() 函数,相关C语言代码如下:
编译并执行这段C语言代码,得到如下输出结果:
虽然程序按照预期执行了,但是应该能在编译时发现警告信息:
这是因为编译器在处理 add() 函数调用时没有找到 add() 函数的原型,只能根据 add(3, 4) 函数调用“推测”隐式声明:
所幸编译器“推测”正确,因此C语言程序得以正常执行。
C语言编译器为什么需要函数原型?
这是因为编译器必须知道函数的参数类型和个数,以及返回值的类型,才能知道该生成什么样的指令。
那为什么不从函数调用的隐式声明中“推测”呢?这是因为并不是所有情况编译器都能“推测”正确的,一旦编译器“推测”错误,要么C语言程序无法编译通过,要么无法得到预期结果。
例如,add() 函数的形参都是 int 型的,实际上我们也能传入 char 型实参,这时编译器就无法获得正确的参数类型了。
对于 printf() 这种参数可变的函数,编译器就更不能确定它的参数类型了。另外,函数的返回值类型,编译器也往往无法正确获得。
既然如此,为什么编译器不自己去搜索函数的定义呢?这是因为编译器不知道去哪里找,例如我们在 main.c 里调用的 add 函数在 fun.c 里,编译器又怎么会知道呢?
extern 和 static 关键字
extern 的字面意思是“外部的”,它是C语言中的一个关键字,表示“外部符号”。你已经知道C语言编译器需要知道函数的原型,所以在
main.c
中,正确的做法应该是下面这样的,请看相关C语言代码:这样编译器就知道 add() 函数的原型了,也知道它来自于外部文件。实际上,函数声明中的 extern 也可以不写,不过不写 extern 仍然表示 add 函数是外部符号。
应该注意到 fun.c 文件里有个全局变量 cnt,我们能否在 main.c 中使用呢?答案是肯定的,使用 extern 引入定义就可以了。
引入外部变量时,extern 不能省略。extern int cnt; 不是定义变量,因此不会为 cnt 分配空间。另外,在 fun.c 中,我们可以把 cnt 初始化为 0 :
而在 main.c 中,则不能再对 cnt 做初始化,下面这种做法是非法的,编译器会报错:
如果不写 extern,意思就变了,int cnt;显然表示定义了一个变量。
如果不希望外界使用本文件里定义的函数,或者变量,该怎么办呢?答案是使用 static 关键字(这个就是题目中说的“与 extern 对应的关键字”)。
以前题主可能使用过 static 来定义静态变量,它其实还表示变量或者函数属于“内部符号”(extern 则表示“外部符号”),有 static 修饰的全局变量和函数在外部文件中都是不可见的。
这时,cnt 和 add() 函数只能在 fun.c 文件中使用,在 main.c 中即使使用 extern 也是不能访问 cnt 和 add() 函数的。
可见,因为C语言有了 extern(“外部符号”) 和 static(“内部符号”) 关键字,所以我们可以在不同的文件里定义不同的模块时,就能方便的控制变量或者函数的访问范围了。
欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。

