参考资料

找一份好的资料,以下文档比较权威,可以借助翻译软件。

gcc 语法

权威资料1

权威资料2

入门经验

编程语言是一门工具,同时需要训练程序思维,理论 + 实践 + 教练。理论参考官方文档,动手写才能学会用。比如打篮球,下场打球才能学会,基础语法得多写,熟能生巧。

代码编程器IDE 推荐初学者先用IDE练习C语言,难度要低一些,比如eclipse,QtCreator,visual studio。

官方概念 与 实践运用代码比概念更容易理解, 官方概念可能存在不太容易理解的时候,通过实践运用去理解概念更容易。
expressions: 表达式,此概念不容易理解。
2+3 ==> 这个一般人都能理解。

好的练习题让进步更快, 入门阶段,一个月内写到1000行代码,基础语法过一遍

教练及时解惑,提供思路及学习方向。

最佳学习路线:编程练习+解决问题+坚持练习。

初学者目标:

分3个阶段

  1. 1个月内练习完成70% 常用语法 – 目标: 看懂别人写的代码,自己能写代码。
  2. 3个月玩转1000行代码左右的工程 – 目标:提升代码量,自己写项目 或者 分析开源代码。
  3. 入门,独立完成中小型产品开发任务 – 需要长时间训练。

常用语法

编译过程

  • 数据结构
    1. 基础类型 int,float,enum,数组,指针,函数指针 等
    2. 自定义类型 struct ,union
  • 流程逻辑
    1. 函数
    2. 分支if else. switch case
    3. 循环
    4. goto
    5. 与或非 && || !
    6. 位运算 & | ^
  • 其它常用
    1. 别名 tpyedef
    2. 宏 define
    3. 代码注释
    4. 保留关键字
    5. 头文件 #include
    6. 作用域
  • C 库
    C库是常用功能代码的集合,编译器自带C 库,加快开发项目。比如以下常用功能。
    1. stdio.h
    2. stdlib.h
    3. string.h
    4. math.h
    5. ctype.h
    6. stddef.h
    7. stdint.h

C 版本

C89, C95, C99, C11, C17, C23,目前工程中最常用C99版本。
最新的语法可能在某些编译器上还未实现,所以这里只看C99最常用版本。国内常接触的编译器GCC、MSVC.

C 语言基础

视频教程
一段C 语言代码要能执行,需要经过编译器处理,生成执行文件才可以运行,流程如下图:
编译过程

  • .c 文件,由代码段组成.
  • .o 目标文件,.c 文件先编译成.o
  • elf 文件是linux平台可执行文件,由.o 文件链接成elf文件,由操作系统运行(window 平台为exe文件)
  • .a 静态库文件,由.o 文件打包组成,便于发布管理.
  • .so 动态库文件,由.o 文件打包组成,便于发布管理.
  • .bin 程序二进制文件,由0/1组成,嵌入式中将bin文件下载到芯片中运行。

一门编程语言是一个完整的体系,从一个完整的程序开始认识对学习更有帮助。

单文件程序结构

视频教程
代码仓,参考 t1 目录

t1.c 文件程序如下,C程序入口函数为main,程序主要功能打印输出两个变量值。

// 单行注释,include 包含c库头文件stdio.h
#include <stdio.h>

/*
    多行注释
    gloval_var 是整个变量,初使值为100
*/
int gloval_var = 100;

int main(int argc,char **argv)
{
    int local_var = 10;
    printf("local value %d \r\n",local_var);
    printf("global value %d \r\n",gloval_var);
    return 0;
}

多文件程序结构

视频教程
代码仓,参考 t2 目录
一般工程较大的,都是由多个C文件组成,编译后生成一个elf文件,程序入口函数依然是main.

提升书籍

  • C缺陷与陷阱
  • C专家编程
  • C和指针