MyException - 我的异常网
当前位置:我的异常网» C语言 » 大家帮忙回答几个小问题,集思广益

大家帮忙回答几个小问题,集思广益

www.MyException.Cn  网友分享于:2013-04-01  浏览:2次
大家帮忙回答几个问题,集思广益
一、下列两者有什么分别?  
int   foo(void);  
extern   int   foo(void);  
二、下列两个全程变量有什么区别?注意这不是局部变量。  
int   a;  
static   int   b;  
三、return   是个函数还是个关键字?  
四、请问预处理器是怎样处理   #include   语句?  
五、为常量、变量等改名字时要注意什么、为函数改名字时又要注意什么?  
六、为什么一般函数的参数数目是固定的,而   printf()、scanf()   等的又没有这个规定?

------解决方案--------------------
一、下列两者有什么分别?
int foo(void);
extern int foo(void);
----------------------------
没区别,函数名前没有任何标识符,默认就是extern

二、下列两个全程变量有什么区别?注意这不是局部变量。
int a;
static int b;
----------------------------
static的变量,不允许在其他头文件或c文件中使用,仅在当前文件可见。

三、return 是个函数还是个关键字?
---------------------------
关键字

四、请问预处理器是怎样处理 #include 语句?
---------------------------
#include 后面一般都是一个头文件名,预处理器会将该头文件直接填充到该位置,即在#include 处展开。

五、为常量、变量等改名字时要注意什么、为函数改名字时又要注意什么?
---------------------------
没改过,不知道

六、为什么一般函数的参数数目是固定的,而 printf()、scanf() 等的又没有这个规定?
---------------------------
因为printf(),scanf()的参数可变。所以用 "... "
------解决方案--------------------
一 int foo(void);--> 定义
extern int foo(void);---> 声明。

二 int a; ---> 作用域是整个工程
static int a ---> 作用域是整个文件。
三.return 是关键字
四. 在编译期间把指定文件的内容包含进当前文件。
五.常量,变量名要遵循min_length && max_information原则常量名一般全部大写。

------解决方案--------------------
我来讲讲我所理解的,不知道对不对:
一、前者为函数声明,该函数的定义部分应该在此声明文件的“可见”范围内,比如#include包含的文档内,或就在此文件内。属于内部函数,会被编译到此文件obj内。
后者为外部函数声明,该函数可能没有定义部分而是实现在dll、lib或obj内。编译时不会提示,链接时需要提供此函数所属obj或lib。
二、全局下我觉得没有区别,听听楼下意见。
三、关键字
四、#include行被替换成所包含的文件内容
五、好记、易懂,常量一般全大写,改的时候最好用替换,全局替换。
六、函数定义时可以使用...省略,函数中使用va_list、va_start、va_arg、va_end配和使用来获取各个参数。包含头stdarg.h
------解决方案--------------------
一、下列两者有什么分别?
int foo(void);
extern int foo(void);
==========================
在多数环境,两者等效,
但是如果是需要外部使用foo函数,建议使用 后面一种形式。


二、下列两个全程变量有什么区别?注意这不是局部变量。
int a;
static int b;
============================
static 限定该全局变量仅在当前文件中可以被访问,
在其他文件中的函数、方法无法访问该全局变量。

三、return 是个函数还是个关键字?
==================
return 是标准定义的 关键字


四、请问预处理器是怎样处理 #include 语句?
=====================
在include 位置展开所指定的文件


五、为常量、变量等改名字时要注意什么、为函数改名字时又要注意什么?
===============================
一些基本的准则,
比如符合一些命名法则等。


六、为什么一般函数的参数数目是固定的,而 printf()、scanf() 等的又没有这个规定?
=========================
printf 等使用可变参数技术,所以其参数是可变的。
参看 可变参数 技术资料。【Google一下即可】

文章评论

做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
如何成为一名黑客
如何成为一名黑客
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
我的丈夫是个程序员
我的丈夫是个程序员
为什么程序员都是夜猫子
为什么程序员都是夜猫子
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
漫画:程序员的工作
漫画:程序员的工作
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
旅行,写作,编程
旅行,写作,编程
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
10个调试和排错的小建议
10个调试和排错的小建议
鲜为人知的编程真相
鲜为人知的编程真相
程序员应该关注的一些事儿
程序员应该关注的一些事儿
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
那些争议最大的编程观点
那些争议最大的编程观点
Java程序员必看电影
Java程序员必看电影
程序员的鄙视链
程序员的鄙视链
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
编程语言是女人
编程语言是女人
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
老程序员的下场
老程序员的下场
程序员都该阅读的书
程序员都该阅读的书
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
 程序员的样子
程序员的样子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
中美印日四国程序员比较
中美印日四国程序员比较
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有