1、被extern "C"修饰的变量和函数是按照C语言方式编译和连接的;
要明白为何使用extern "C",还得从cpp中对函数的重载处理开始说起。在c++中,为了支持重载机制,在编译生成的汇编码中,要对函数的名字进行一些处理,加入比如函数的返回类型等等.而在C中,只是简单的函数名字而已,不会加入其他的信息.也就是说:C++和C对产生的函数名字的处理是不一样的.
2、std::vector介绍http://www.cnblogs.com/yxnchinahlj/archive/2011/03/06/1972435.html
3、迭代器介绍http://www.360doc.com/content/12/1128/13/9290626_250737796.shtml
4、assert()
assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include
5、memset()
函数原型 void *memset(void *s, int ch, unsigned n); 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。
6、memcpy()
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#include
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
7、将变量声明为static const,是为了实际需要,为了设定一个在整个class范围内都不变的常量。
C语言相关:
1. C语言打印十六进制用%x
2.stdint.h定义了几种扩展的整数类型和宏,
3.gcc -o test spi_slv.c 如果带代码中有for循环,需要加上-std=c99
4.printf打印uint64_t的格式为%lx
5.调用子函数的输入没有初始化或者主函数没有return 0或者main()没有定义为int型,导致segmentation fault,目前具体原因尚未明确。