C语言入门

====
==预处理指令(#)
===
1、条件编译(ifdef|ifndef):可以防止重复定义;减少编译代码
#ifdef ABC
语句1
#elif 条件1
语句2
#else
语句3
#endif
========
#ifndef ABC
语句1
#endif
========
#if !defined(ABC)
#endif
========
#undef 宏
#define 宏
2、#error 当遇到标准错误时,输出错误消息
3、#pragma 使用标准化方法,向编译器发布特殊的命令到编译器中
4、#include
====
==关键字
====
1、typedef 可以使用它来为类型取一个新的名字
====
==数据类型
====

1、整数

char 1 字节 -128 到 127 或 0 到 255
unsigned char 1 字节 0 到 255
signed char 1 字节 -128 到 127
int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
short 2 字节 -32,768 到 32,767
unsigned short 2 字节 0 到 65,535
long 4 字节 -2,147,483,648 到 2,147,483,647
unsigned long 4 字节 0 到 4,294,967,295

2、浮点

float 4 字节 1.2E-38 到 3.4E+38 6 位小数
double 8 字节 2.3E-308 到 1.7E+308 15 位小数
long double 16 字节 3.4E-4932 到 1.1E+4932 19 位小数

3、void

1 函数返回为空
C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status);
2 函数参数为空
C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void);
3 指针指向 void
类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。
====
==Tokens
==标识符(数字、字母、下划线的组合,数字无法做首字母)
==关键字(保留字)
====
关键字 说明
auto 声明自动变量
break 跳出当前循环
case 开关语句分支
char 声明字符型变量或函数返回值类型
const 声明只读变量
continue 结束当前循环,开始下一轮循环
default 开关语句中的”其它”分支
do 循环语句的循环体
double 声明双精度浮点型变量或函数返回值类型
else 条件语句否定分支(与 if 连用)
enum 声明枚举类型
extern 声明变量或函数是在其它文件或本文件的其他位置定义
float 声明浮点型变量或函数返回值类型
for 一种循环语句
goto 无条件跳转语句
if 条件语句
int 声明整型变量或函数
long 声明长整型变量或函数返回值类型
register 声明寄存器变量
return 子程序返回语句(可以带参数,也可不带参数)
short 声明短整型变量或函数
signed 声明有符号类型变量或函数
sizeof 计算数据类型或变量长度(即所占字节数)
static 声明静态变量
struct 声明结构体类型
switch 用于开关语句
typedef 用以给数据类型取别名
unsigned 声明无符号类型变量或函数
union 声明共用体类型
void 声明函数无返回值或无参数,声明无类型指针
volatile 说明变量在程序执行中可被隐含地改变
while 循环语句的循环条件

C99 新增关键字

_Bool _Complex _Imaginary inline restrict

C11 新增关键字

_Alignas _Alignof _Atomic _Generic _Noreturn
_Static_assert _Thread_local

PHP7.0源码分析-重新认识PHP

从上一份工作(2015年)开始,断断续续地学习了一些源码方面的知识。但是现在看来,学习的东西基本都忘光了,没有任何收货,只是为了学而学。

最近订阅了一个知识专栏,里面不经意的一句话让我有所领悟。那就是学习知识要有目的,且持之以恒。

有目的就是要把学习的目标具体化,比如3个月内读完《PHP7源码剖析》;不必规则每天的安排,有个时间节点,有一个能落实的指标即可。像3年成为PHP专家这种命题,我感觉有点虚,不实,所以立这种flag基本不靠谱。

持之以恒的含义就是每天都做一些,不要间断。重点是不间断,不间断,不间断。之所以有了理解,原因说不太清,反正突然间就领悟了。
我给自己定了个小目标每天1-2个小时读书,顺序是《PHP7源码分析》->《高性能Mysql》->《深入理解Nginx》->《Redis源码分析》。其中php要反复精读,mysql要精读,其他做为了解。

今天已经开始执行了一段时间了,具体哪天开始的已经不记得了。那就认为是8月20日吧,我儿子生日那天。