摘要: #include <stdio.h> void main(){ printf("hello world.\n"); } gcc hello.c -o hello -std=c99 编译通过。 但通过如下编译则失败—— g++ hello.c -o hello -std=c++11 失败信息为: he 阅读全文
posted @ 2017-08-16 17:47 atoman 阅读(1394) 评论(0) 推荐(0) 编辑
摘要: C++中有两种类型的容器:顺序容器和关联容器。 顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。 关联容器主要有map和set。map是k 阅读全文
posted @ 2017-08-16 11:47 atoman 阅读(248) 评论(0) 推荐(0) 编辑
摘要: ##用来连接前后两个参数,把它们变成一个字符串。 内核中有很多的宏定义,在宏定义 define 中经常看到两个字符串##和#,这里把它的用法做一下说明: ## 是一个连接符号,用于把参数连在一起,例如: #define FOO(arg) my##arg 则 FOO(abc) 相当于 myabc #d 阅读全文
posted @ 2017-08-11 11:04 atoman 阅读(1633) 评论(0) 推荐(0) 编辑
摘要: WORD wTemp = 0; memcpy((WORD *)&wTemp, ptPort+1, sizeof(WORD)); //if (STD_WORD_ALL == *(WORD *)(pucTpMsk+1)) if (STD_WORD_ALL == wTemp) { //*(WORD *)( 阅读全文
posted @ 2017-08-09 10:38 atoman 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 原则1: DRY 不做重复的事(Don't Repeat Yourself) 降低可管理单元复杂度的一个基本策略就是将他们拆解成更小的单元。 DRY原则指出,这些小的业务模块在你整个系统中能且只能出现一次。在一个系统内,每个知识必须有单一的,明确的,权威的呈现。 原则2: KISS 保持简单直接(K 阅读全文
posted @ 2017-06-11 11:59 atoman 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 开发一个新的需求,被告知配套的逻辑和之前某个类似单板完全一致,从而软件实现只需要修改很少的代码,“理论上”讲,这么少量的修改几乎不可能出错。 编码完成之后,涉及到验证,发觉组建验证环境非常复杂,既要设备、仪表、大量光纤光模块器件,还要选择和修改运行脚本,这个工作量是编码的数倍。 验证过程受阻时,偶现 阅读全文
posted @ 2017-02-17 11:42 atoman 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 首先C里面没有定义布尔是基础类型,一般都是自己定义一个类型, 在c++里面才用了专门的布尔类型 bool 大家使用时要配对使用:比如如果定义的类型是bool(字长跟BYTE相同),值请使用对应小写的true false 这个在c++中都有定义不需要额外做什么。 CSS自己定义 BOOLEAN的类型, 阅读全文
posted @ 2017-02-17 11:21 atoman 阅读(7847) 评论(1) 推荐(0) 编辑
摘要: 相比于C语言中函数可以直接调用,CPP的函数由于命名存在隐式添加,因此需要通过一套流程才能调用: 1. 编码中,使用extern "C" 定义一个C函数,返回获取对象的指针;执行该函数时,获得一个地址,例如0x496a9784,为该对象指针。 example: extern "C" CxxxxFpg 阅读全文
posted @ 2017-02-06 18:24 atoman 阅读(2689) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2016-12-29 08:56 atoman 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 本文参考了如下链接:http://www.cnblogs.com/graphics/archive/2010/07/15/1777760.html 数组作为入参时,自动被转换为指针。因此数组定义的元素个数的参数无法带入函数。这不符合coder的预期,也是不严格和有风险的coding。 如何解决呢,一 阅读全文
posted @ 2016-07-19 12:23 atoman 阅读(310) 评论(0) 推荐(0) 编辑