C
快乐遇见忧伤
这个作者很懒,什么都没留下…
展开
-
char数组
1、首先值得注意的是,char本身就是一个直接的数据而已,里面存放的就是数据,和int的四个字节拿出任意一个字节都一样,只不过在屏幕上显示是,显示的是ascii码,如果你是char类型,无论你愿意是数字还是表示字符(本身也是数值),就是直接按照char类型输出,这个是输入输出流帮我们做的事情,如果是int类型,输入输出流就会解释成数值,从而进行自动的转换,因为屏幕输出肯定是ascii的。 2、对于原创 2017-04-10 15:33:03 · 1261 阅读 · 0 评论 -
自定义的动态链接库使用
我们自己写的动态链接库已经放在lib下为什么编译时还需要指定?1、编译生成动态链接库,放入/lib目录下,或者将库所在目录加入PATH环境变量。 2、编译程序是,使用gcc -l 动态链接库的名字 。。。,需要指定要链接的库的名字 除了标准的Io,其实其他的库都需要自己指定,只不过在 windows下IDE替我们做了这个工作。原创 2017-11-19 00:49:17 · 383 阅读 · 0 评论 -
char * 指针
int main(void) { char *p1 = NULL, *p2 = NULL, *p3 = NULL; /* 1. malloc */ p1 = malloc(10); strcpy(p1, "hello"); printf("p1 = %s\n", p1); free(p1); /* 2. calloc */原创 2017-11-19 00:52:04 · 1852 阅读 · 0 评论 -
c语言缓冲区
缓冲区的类型缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。1) 全缓冲在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。2) 行缓冲在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O下列情况会引发缓冲区的刷新:?缓冲区满时;?行缓冲区遇到回车时;?关闭文件;?使用特定函数刷新缓冲区。下列情况会引发缓冲区的刷新:?缓冲区满时;?行缓冲区遇到回车时原创 2017-11-19 00:53:00 · 441 阅读 · 0 评论 -
c语言中static的语义
简单来说就是: 全局变量,程序所有文件可见,限定作用关于本文件就用static修饰,全局变量在所有文件中可见,使用时需要extern 局部变量看,static修饰,作用域函数内部,多次进入访问同一个变量,静态存储区 extern:只能引用全局变量,不能引用static修饰的变量 对于全局变量,不同文件不能定义同名变量,否则会冲突 eg: cc.c int原创 2017-11-19 00:53:29 · 301 阅读 · 0 评论 -
extern
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语言的另外一个话题--变量的作用域。能够被其他模原创 2017-11-19 00:53:51 · 168 阅读 · 0 评论 -
预编译
几个预编译指令的用法 预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。 在 C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条件决定编译时是否包含某些代码。要完成这些工作,就需要使用 预处理程序。尽管在目前绝大多数编译器都包含了预处理程序,但通常认为它们是独立于编译器的。预处理过程读入源原创 2017-11-19 00:54:21 · 218 阅读 · 0 评论 -
scanf
scanf标准的格式输入 char name[6]; int a; int c; scanf(“%s %d %d”,name,&a,&b); 输入形式:aaa 12 13 格式输入必须有空格,否则就会读入到name把12 如下例: scanf(“%s %d %d”,name,&a,&b); 严重错误 切记空格 scanf是格式输入 严格匹配原创 2017-11-19 00:54:48 · 240 阅读 · 0 评论