language_C/Cpp
zh_yt
绚烂明亮、灰头土脸,都不过是生命中的一个个时段,不要停下奔跑的脚步... ...
展开
-
C语言文献中的modifier和qualifier
C文献中的modifier和qualifier 在读C语言英文文章时,谈到诸如unsigned、const、volatile等时,常会看到称其是modifier和qualifier,这两个词有区别吗?一般语言上: 先看一般的语言(泛指人类语言文字,如英语): 在语言分析上严格讲,这两个词是有区别的。是这样的顺序,Modifiers-Heads-Qualifiers,即head之前叫mod原创 2015-03-03 17:20:29 · 5995 阅读 · 1 评论 -
C的数组
C的数组/* 数组指定元素初始化(C99) */#include <stdio.h>int main(){ int days[10] = {1, 2, 3, [5] = 5, 6, 7, [1] = 8}; //对同一元素多次初始化,以最后一次有效 int i = 0, n = sizeof(days) / sizeof(days[0]); for (i = 0; i <原创 2015-09-06 18:05:49 · 429 阅读 · 0 评论 -
C源码到可执行文件的preprocess/compile/assemble/link四阶段
C源码到可执行文件的preprocess/compile/assemble/link四阶段参考资料http://www.thegeekstuff.com/2011/10/c-program-to-an-executable/ http://courses.cms.caltech.edu/cs11/material/c/mike/misc/compiling_c.html 预处理器: https:翻译 2016-01-04 05:42:42 · 3169 阅读 · 0 评论 -
运算符的优先级&同优先级内的结合性&序列点
运算符的优先级&同优先级内的结合性&序列点本文以C语言为基础来进行探讨。参考资料:运算符的结合性: https://en.wikipedia.org/wiki/Operator_associativity c的优先级与结合性: https://msdn.microsoft.com/en-us/library/2bxt6kc4.aspx https://msdn.microsoft.com/e原创 2016-01-20 19:53:57 · 1132 阅读 · 0 评论 -
[C/Cpp/Java]编程语言的一些通用概念
语言的一些通用概念C/Cpp/Java中的函数签名(method signature)C/Cpp/Java中的函数签名(method signature),包括method name and the parameter list, 即函数名和参数列表(参数个数、类型、顺序)。 注意不包括返回类型。Return types and thrown exceptions are not consider原创 2015-12-01 02:46:41 · 845 阅读 · 0 评论 -
MSB&LSB与Endianness
MSB&LSB与Endianness参考资料http://www.merriam-webster.com/dictionary/positional%20notationhttp://www.buczynski.com/Proteus/msblsb.html https://en.wikipedia.org/wiki/Most_significant_bit https://en.wikiped原创 2016-01-29 03:56:32 · 2818 阅读 · 0 评论 -
C/Cpp的 typedef
C/Cpp的 typedef参考: https://en.wikipedia.org/wiki/Typedef http://publications.gbdirect.co.uk/c_book/chapter8/typedef.htmlIndicating what a variable represents 指示一个新名字来代表typedef int km_per_hour;typedef翻译 2015-12-28 14:54:20 · 746 阅读 · 0 评论 -
C/Cpp指针
C/Cpp指针动画演示参见: http://cslibrary.stanford.edu/ https://en.wikibooks.org/wiki/C_Programming/Pointers_and_arrays http://publications.gbdirect.co.uk/c_book/chapter5/pointers.html http://publications.gb翻译 2015-12-28 16:21:55 · 1405 阅读 · 0 评论 -
预处理#define中的符号和字符串问题
预处理#define中的符号和字符串问题# 字符串化,即把传进宏的参数转变成相应string## 标识符胶水,即把两个token黏合为一个token/* * 1.字符串化, Creating Strings from Macro Arguments: The # Operator * Within the replacement part of a function-like macr原创 2016-03-24 00:18:07 · 3734 阅读 · 0 评论 -
L-value和R-value
L-value和R-valueL-value: Location 位置(代表一个object)R-value: Readout 读出物说明:C和Cpp的左值和右值是有点不一样的。参考:http://www.cnblogs.com/dejavu/archive/2012/09/02/2667640.html https://msdn.microsoft.com/en-us/library/bk原创 2016-06-19 00:49:33 · 1838 阅读 · 0 评论 -
C声明中的指针
C声明中的指针参考http://www.cdecl.org/ http://unixwiz.net/techtips/reading-cdecl.html指针int i; declare i as intconst int i; declare i as const int----------int * p; declare p as pointer to原创 2016-06-20 01:29:57 · 637 阅读 · 0 评论 -
Cpp的存储级别Storage Classes-笔记
Storage Classes存储级别本文参考这里registerautostaticexternmutableregister变量尽量被存储在register而非RAM中,不能被寻址。auto局部变量默认存储类型。static局部变量:保持存在全局变量:限制到文件内使用extern申明变量或函数在别的文件中已定义。mutable略原创 2015-03-10 14:55:05 · 600 阅读 · 0 评论 -
Cpp的数组与指针关系-笔记
Cpp的数组与指针int arr[10];int *ptr;/*----------(gdb) ptype arrtype = int [10](gdb) ptype ptrtype = int *----------*/原创 2015-03-10 16:29:55 · 963 阅读 · 0 评论 -
Cpp的重载Overload(函数&运算符)-笔记
Cpp的Overload(Operator and Function)本文参考这里函数重载通过参数表的类型/数目(但不能通过返回值)【概念:函数签名】,来进行重载解析(overload resolution)。 运算符重载略原创 2015-03-09 22:51:08 · 729 阅读 · 0 评论 -
Cpp引用Reference-笔记
Cpp引用Reference本文参考此处引用vs指针(References vs Pointers)引用不能为NULL,必须连结到一个合法的存储位置。引用必须在创建时就初始化。引用初始化完成后,不能再改变。创建引用type var;type &var_ref = var; // 引用引用作为参数void swap(int &x, int &y){ int temp; t原创 2015-03-13 01:46:54 · 1634 阅读 · 0 评论 -
Cpp的继承Inheritance-笔记
Inheritance本文参考这里基类&派生类、继承&多继承IS-A 关系:// 单继承class derived_class: access-specifier base_class{};// 多继承class derived-class: access baseA, access baseB....{};派生类,可以访问基类中除了private外的其它成员(non-private)。原创 2015-03-09 22:34:59 · 674 阅读 · 0 评论 -
Cpp面向对象概念-笔记
Cpp面向对象概念Object-Oriented Concepts本文参考此处ObjectClassAbstractionEncapsulationInheritancePolymorphismOverloadingObject数据(data)和函数(操作)的捆绑单元,就是对象。ClassblueprintAbstraction抽象指的是,只向外面提供必须的信息,而把内部细节隐藏起来原创 2015-03-13 11:02:15 · 1572 阅读 · 0 评论 -
Cpp的预处理Preprocessor-笔记
Cpp的Preprocessor预处理本文参考此处预处理指示器(Preprocessor directives)不是C++语句,所以不用分号 “;” 结尾。#define无参宏有参宏条件编译#if [defined()] / #ifdef / #ifndef ...#endif# 和 ###:字符串化stringizing,Creating Strings from Macro A原创 2015-03-12 19:57:12 · 1367 阅读 · 0 评论 -
Cpp模版Template-笔记
Cpp的模版Template本文参考这里模板是泛型编程的基础。函数模版 Function Templatetemplate <class(或typename) T> // T是类型占位符,在下面紧接的函数定义中可以使用ret-type func_name(parameter list){ // body}类模版 Class Templatetemplate <class T> //原创 2015-03-12 14:58:46 · 1202 阅读 · 0 评论 -
Cpp的namespace-笔记
Namespace本文参考这里定义一个Namespace// 用namespace关键字把code包起来。// 下面创建了一个namespace,或添加items到一个已存在的namespace,// 参考“不连续namespace”namespace namespace_name { // code declarations}// 使用namespace_name::code;原创 2015-03-12 10:48:55 · 1144 阅读 · 0 评论 -
Cpp的动态存储Dynamic Memory-笔记
Cpp的Dynamic Memory动态内存本文参考这里堆&栈stack栈heap堆new&deletedata-type *ptr = new data-type; //分配delete ptr; //释放* Cpp里不用malloc/free。数组的动态内存分配// 一维数组data-type *ptr = new data-type[SIZE];delete [] ptr;//原创 2015-03-10 23:35:52 · 549 阅读 · 0 评论 -
Cpp的异常处理Exception Handling-笔记
Cpp的异常处理Exception Handling本文参考这里Cpp的异常处理建立在三个关键字上:try, catch, throwtry-catchtry{ // protected code}catch(...) //三点省略号,handle any type of exception { // code to handle any exception}throw略Cpp标准原创 2015-03-10 23:21:49 · 866 阅读 · 0 评论 -
Cpp的Class和Object-笔记
Class和Object本文参考这里定义Classclass [class_name]{}[obj_name]; //注意分号定义Objectclass_name obj_name;访问member访问成员的运算符: “.”obj_name.member;一些细节范围解析操作符 scope resolution operator “::”访问权的限定(参见子类的继承方式): 访问权原创 2015-03-09 22:07:12 · 1382 阅读 · 0 评论 -
Cpp的多态Polymorphism-笔记
Cpp的Polymorphism 多态一般用基类类型定义的对象或指针,所指向的对象是静态链接:早期绑定,不会“智能”解析。class base_class{public: int func(){cout << "基类函数" << endl;}};class sub_class: public base_class{public: int func(){cout << "子原创 2015-03-09 22:56:48 · 660 阅读 · 0 评论 -
C的0码
C语言的0们:0、'\0'、'0'、NULL、"0"在机器内的编码是什么?char a = '0'; // a字符'0',ascii编码48char b = '\0';char c = 0;char d = NULL; // b、c、d的ascii编码都是0char e[64] = {0};char f[64] = {'\0'};原创 2015-02-02 11:18:42 · 702 阅读 · 0 评论