char*是一个指向char的指针,是可以改变指针指向的值。但是在C语言中可以有指向常量的用法,比如char* s = "abc"; 通过 s 是不可以改变字符串常量的数值的, 然而像 s[0] = 'd'; 的这种写法在C语言中是可以通过编译的,错误会发生在执行时,C语言的宗旨是认为程序员可以做正确的事情。C++中这种写法是不会通过编译的,g++上测试会提示
1、避免头文件重复包含// test.h 此段宏的意思是如果定义了宏变量TEST_H_则不再定义它 #ifndef TEST_H_ #define TEST_H_ //头文件内容 #endif或者// test.h 告诉预编译器只包含一次 #pragma once2、避免重复定义 不要将函数定义放置在头文件里面,正确
Iterator模式: 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。leveldb中include/leveldb.h定义了iterator基类,访问某层sst、某个sst内部kv、某个memtable内部kv、整个DB内部kv都需要迭代器,都是通过继承iterator来实现自己的迭代器版本。这样做能将容器中遍历数据的职能和其他职能分离开来,遵守了单一职
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号