随笔分类 -  C/C++

linux串口编程参数配置详解
摘要:1.linux串口编程需要的头文件#include //标准输入输出定义#include //标准函数库定义#include //Unix标准函数定义#include #include #include //文件控制定义#include //POSIX中断控制定义#include //错误号定义2... 阅读全文

posted @ 2014-07-01 12:59 sxzxcm 阅读(34657) 评论(0) 推荐(1) 编辑

关于memset
摘要:今天在写工程的时候遇到这样的问题:1 longmotorEcoderRates[100];2memset(motorEcoderRates,111,sizeof(motorEcoderRates));调试的时候发现motorEcoderRates的值并不是100,原来是自己对memset的理解不够深入功能: 将s所指向的 某一块内存中的每个字节的内容全部设置为ch指定的ASCII值。即将指定的内存,以字节为单位,置为ch所代表的内存形式。块的大小由第三个参数指定,这个函 数通常为新申请的内存做初始化工作。 用法: void *memset(void *s, char ch, unsigned. 阅读全文

posted @ 2012-04-12 09:18 sxzxcm 阅读(347) 评论(0) 推荐(0) 编辑

C++ Boost Thread 编程指南
摘要:0 前言标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务服务器在单独的线程上运行服务程序;GUI应用程序将那些费时,复杂的处理以线程的形式单独运行,以此来保证用户界面能够及时响应用户的操作。这样使用多线程的例子还有很多。但是C++标准并没有涉及到多线程,这让程序员们开始怀疑是否可能写出多线程的C++程序。尽管不可能写出符合标准的多线程程序,但是程序员们还是会使用支持多线程的操作系统提供的多 阅读全文

posted @ 2011-12-29 17:04 sxzxcm 阅读(23234) 评论(0) 推荐(2) 编辑

.h头文件 .lib动态链接库文件 .dll 动态链接库
摘要:.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。.h .lib .dll三者的关系是:H文件作用是:声明函数接口DLL文件作用是: 函数可执行代码当我们在自己的程序中引用了一个H文件里的函数,编链器怎么知道该调用哪个DLL文件呢?这就是LIB文件的作用: 告诉链接器 调用的函数在哪个DLL中,函数执行代码在DLL中的什么位置,这也就是为什么需要附加依赖项 .LIB 阅读全文

posted @ 2011-09-30 20:24 sxzxcm 阅读(862) 评论(0) 推荐(2) 编辑

一个配置文件管理类
摘要:贴一个我最近写的一个配置文件的管理类,大家看看有什么bug。配置文件中安linux风格用'#'做注释,数据行按照"参数名=参数值"的方法组织。用法:1.先setFileName设定配置文件的文件名,或者在初始化的时候指定;2. 调loadConfigs函数,该函数会将配置文件中合法的数据行载入到一个map中,如果文件打开失败,该函数返回false,否则返回true;3.调用getValue/setValue进行参数的读取和修改,在读取/修改时,函数第一个参数是要读取/修改的参数名,第二个参数是读取/修改的数值。如果指定的参数名不存在函数返回false,否则返 阅读全文

posted @ 2011-09-30 16:42 sxzxcm 阅读(530) 评论(0) 推荐(0) 编辑

使用stringstream对象简化类型转换
摘要:C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。为什么要学习如果你已习惯了<stdio.h>风格的转换,也许你首先会问:为什么要花额外的精力来学习基于<sstream>的类型转换呢?也许对下面一个简单的例子的回顾能够说服你。假设你想用sprintf()函数将一个变量从int类型转换到字符串类型。为了正确地完成这个任务,你必须确保证目标缓冲区有足够大空间以容纳转换完的字符串。此外,还必须使用正确的格式化符。如果使用了 阅读全文

posted @ 2011-09-30 16:01 sxzxcm 阅读(412) 评论(0) 推荐(1) 编辑

extern 用法,全局变量与头文件(重复定义)
摘要:用#include可以包含其他头文件中变量、函数的声明,为什么还要extern关键字,如果我想引用一个全局变量或函数a,我只要直接在源文件中包含#include<xxx.h>(xxx.h包含了a的声明)不就可以了么,为什么还要用extern呢??这个问题一直也是似是而非的困扰着我许多年了,今天上网狠狠查了一下总算小有所获了:头文件首先说下头文件,其实头文件对计算机而言没什么作用,她只是在预编译时在#include的地方展开一下,没别的意义了,其实头文件主要是给别人看的。我做过一个实验,将头文件的后缀改成xxx.txt,然后在引用该头文件的地方用#include"xxx.t 阅读全文

posted @ 2011-09-26 17:15 sxzxcm 阅读(21609) 评论(3) 推荐(9) 编辑

C/C++数据对齐
摘要:为了避免混淆,做如下规定,以下代码若不加特殊说明都运行于32位平台,结构体的默认对齐值是8,各数据类型所占字节数分别为char占一个字节int占四个字节double占八个字节。两个例子请问下面的结构体大小是多少?struct Test{ char c ; int i ;};这个呢?struct Test1{ int i ; double d ; char c ;};在公布答案之前先看一下对齐的规则。对齐规则一般来说,结构体的对齐规则是先按数据类型自身进行对齐,然后再按整个结构体进行对齐,对齐值必须是2的幂,比如1,2, 4, 8, 16。如果一个类型按n字节对齐,... 阅读全文

posted @ 2011-09-26 16:58 sxzxcm 阅读(613) 评论(0) 推荐(0) 编辑

将类成员函数用做C回调函数
摘要:将类成员函数用做C回调函数提出问题:回调函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。分析原因:普 通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指针给其成员函数从而实现程序函数可以访... 阅读全文

posted @ 2010-10-29 13:32 sxzxcm 阅读(754) 评论(0) 推荐(0) 编辑

Linux下的C编程实战
摘要:Linux下的C编程实战(一)――开发平台搭建1.引言 Linux操作系统在服务器领域的应用和普及已经有较长的历史,这源于它的开源特点以及其超越Windows的安全性和稳定性。而近年来,Linux操作系统在嵌入式系统领域的延伸也可谓是如日中天,许多版本的嵌入式Linux系统被开发出来,如ucLinux、RTLinux、ARM-Linux等等。在嵌入式操作系统方面,Linux... 阅读全文

posted @ 2010-10-16 23:59 sxzxcm 阅读(55569) 评论(3) 推荐(4) 编辑

导航