(c primer plus第五版) 学习笔记
第二章 c语言概述
一个简单的实例
#include <stdio.h>
int main(void)
{
int num; /*定义变量num*/
num = 1; /*给变量num赋值*/
printf("I am a simple"); /*使用printf()函数*/
printf("computer.\n");
printf("My favorite number is %d because it is first.\n",num);
return 0;
}
简单分析如下:
第一个语句:#include<stdio.h> 告诉编译器本源文件包含stdio.h中的所有信息包含函数、变量等
第二个语句:int main(void) 定义main函数类型为int,不接受任何参数(void)
第三和第四个语句:定义了int类型变量num,并赋值给num
第五、六和七语句:调用了stdio.h文件中的printf()函数
第六个语句:返回语句,返回值为0
深入分析:
第一:#include是c语言的预处理器指令(preprocessor directive),c编辑器在编译前要对源代码做一些准备工作,这称为预处理
第二:int main()函数,几乎所有的c程序都是从这个函数开始执行的,main()是c程序的基本模块 , 而int则声明函数返回的是整数,返回给操作系统,其他声明main的形式:
main() /* c90标准会支持这种形式,c99则不支持,最好不要这样声明*/
Void main() /*无返回值,最好也不要这样声明 */
第三:int num 定义了整型变量num,在c程序中,所有变量在使用之前必须定义而且必须给出类型,不然编译器通不过,会提示编译错误
第四:调用了c语言标准函数printf(),其中括号里面的是参数,当程序调用了printf()函数,将控制权交给prinft()函数,当完成调用了,就将控制权交给main()函数
最后一个语句:return 0;因为main函数是整数类型,所以必须返回一个整数类型的值,没有给出返回语句,相对c99标准来说编译器会提示编译错误
相关文档:
以前学生时代的时候就有遇到过这个问题,不过没去深究;
现在也是老问题,其实很简单,就是为了防止#include两个头文件的时候,把第一个头文件的最后一行和 第二个头文件的第一行拼接成一行;呵呵,其实很多问题都很简单,而且很隐蔽,只是我们很多时候没去注意! ......
不知不觉已经工作两年了,辞去了原来的工作,又跑回了我上学的地方。今天跑去一家室友介绍的公司面试。问得问题挺简单,但我答的却真不怎么地啊。回来又研究了一下,发现这些问题我应该都理解啊,怎么到别人问起的时候就全忘了一般呢。想想了发现还是学的不到位。不禁又想起了这么多年来,我都学到了什么东西呢。
& ......
#include "stdio.h"
#include "math.h"
#include "time.h"
#define INTERVAL 1 定义宏的时间间隔为1秒
//
void On_Time() //每一秒激发的事件
{
printf("now=%s\n","JJK");
}
void Timer() //时钟的函数
{ time_t newclk,oldclk;
while(1)
&nb ......
http://blog.csdn.net/Ackarlix/archive/2007/08/25/1758412.aspx
Windows下C网络编程入门
C语言的学习,一般的方式是,先学C,然后是C++,最好还要有汇编语言和微机原理基础,然后才是Visual C++。这样的方式,对学习者来说,要花费很多时间和耐力。而在学校教学中,也没有时间深入学习Windows编程的实用技术了。
......
[注]:最近在做UVC描述符的编辑工具,用到很多的结构,为了方便把结构体写成bin文件,需要把结构体中填充的字节去掉,在网上搜索得到这篇文章,感觉挺好的,转过来做个纪念。
结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体.
struct
......