495个C语言问题读书笔记一
2015-06-27 09:37
405 查看
char *p1,p2;
表明p1是一个指向char类型的指针,p2被声明成了普通char类型的变量。
char *p;
*p=malloc(10);
上面这两行是错误的
这里声明的指针是p而不是*p。
声明风格
对于全局变量,定义是真正分配空间并赋初始值(如果有)的声明。
这些是声明
extern int i;
ectern int f();
这些是定义
int i=0;
int f()
{
return 1;
}
当希望在多个源文件中共享变量或函数时,需要确保定义和声明的一致性。最好的安排是在某个相关的.c文件中定义,然后在.h文件(头文件)中进行外部声明,在需要
的时候只要包含对应的头文件即可。
extern 存储类型extern只对数据声明有意义。对于函数的声明,它可以用作一种格式上的提示,表明函数的定义可能在另一个源文件中。
extern int f();与int f();之间没有实质的区别。
对于用户定义类型,typedef和#define有什么区别?
一般来说,最好使用typedef,部分原因是它能正确处理指针类型。
typedef char *string_t;
#define string_d char *
string_t s1,s2;
string_d s3,s4;
s1、s2、s3都被定义成了char*型,s4却被定义了char型。
表明p1是一个指向char类型的指针,p2被声明成了普通char类型的变量。
char *p;
*p=malloc(10);
上面这两行是错误的
这里声明的指针是p而不是*p。
声明风格
对于全局变量,定义是真正分配空间并赋初始值(如果有)的声明。
这些是声明
extern int i;
ectern int f();
这些是定义
int i=0;
int f()
{
return 1;
}
当希望在多个源文件中共享变量或函数时,需要确保定义和声明的一致性。最好的安排是在某个相关的.c文件中定义,然后在.h文件(头文件)中进行外部声明,在需要
的时候只要包含对应的头文件即可。
extern 存储类型extern只对数据声明有意义。对于函数的声明,它可以用作一种格式上的提示,表明函数的定义可能在另一个源文件中。
extern int f();与int f();之间没有实质的区别。
对于用户定义类型,typedef和#define有什么区别?
一般来说,最好使用typedef,部分原因是它能正确处理指针类型。
typedef char *string_t;
#define string_d char *
string_t s1,s2;
string_d s3,s4;
s1、s2、s3都被定义成了char*型,s4却被定义了char型。
相关文章推荐
- C++链表
- C++对象内存分布(3) - 菱形继承(virtual)
- C++ 关于 CMFCPropertyGridCtrl 的使用方法 之二 (原创)
- C++经典面试题(一)
- c++构造函数详解
- C++ 重写重载重定义区别
- C++常见错误大全
- C语言随机数
- 非诚勿扰
- 浅谈线程同步方法性能比较
- C++ 中 static 的用法总结
- 《鸡啄米C++编程入门系列》系列技术文章整理收藏
- 关于C++中STL的erase用法
- 简易C语言学生成绩管理系统
- [C++]接收行数和字符输出图形
- c++学习(1)
- 【leetcode c++】66 Plus One
- 【leetcode c++】58 Length of Last Word
- 【leetcode c++】38 Count and Say
- More Effective C++ 条款13 以reference方式捕捉exception