C
c
Caicaptain
善心善行,不忘初心
展开
-
一段日志代码引发的思考(日志库)
工作中需要用到日志输出到文本,现在手上有一套代码(log.cpp\log.h),大概日志使用方法一开始是这样的:原始版本char *sLog = "需要输出的日志";CLog log;log.AddLog(sLog);log.cpp一开始是这样的void CLog::AddFmtLog( const char* fmt, ... ){ va_start(marker, fmt); _FormatMessage(fmt, marker, logMsg); va_end(marker);原创 2020-05-20 18:25:55 · 192 阅读 · 0 评论 -
c++四个强制转换
static_cast最接近于C风格转换,但在无关类指针转换时,编译器会报错,提升了安全性; double d=3.14159265; int i = static_cast(d); dynamic_cast要求转换类型必须是指针或引用,且在下行转换时要求基类是多态的,如果发现下行转换不安全,dynamic_cast返回一个null指针,dynamic_cast总是认为void*之间的转换是...原创 2018-02-10 09:00:40 · 153 阅读 · 0 评论 -
Bebug和release区别
Bebug和release区别 vs中的程序有debug和release两个版本,Debug通常称为调试版本,编译的结果通常包含调试信息,而且不做任何优化,为开发人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。简单来说,类似debug(大,可容差)是用来原创 2017-04-05 23:56:43 · 1282 阅读 · 0 评论 -
添加lib库的三种方法(未完)
方法1: 通过设置工程配置来添加lib库.A、添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录。B、添加文件引用的lib静态库路径:工程---属性---配置属性---链接器---常规---附加库目录:加上lib文件存放目录。C 然后添加工程引用的lib文件名:工程---属性---配置属性---链接器---输入---附加依赖项原创 2017-03-28 23:42:06 · 5582 阅读 · 0 评论 -
linux下xml安装和使用
xml安装和使用需要文件:mxml-2.7.tar usemxml.c test.xml步骤:1.mxml-2.7.tar拷到共享文件夹 2.linux进入共享文件夹 3.#sudo su 4.#cp mxml-2.7.tar.gz /home/ 5.#tar -xvf mxml-2.7.tar.gz 6.#cd mxml-2.7 7.#./configure 8.make in原创 2017-03-21 23:42:04 · 3281 阅读 · 0 评论 -
个人编程规范
1.文件1.1 中文版1.1.1 头文件/* //版本和版本声明* Copyright (c) 2016,百度* All rights reserved.** 文件名称:filename.h* 文件标示:见配置管理书* 摘要:简要描述本文件的内容** 当前版本:1.1* 作者:XXX* 完成日期:2017年1月5日*原创 2017-03-17 23:44:54 · 230 阅读 · 0 评论 -
sizeof和strlen
1.sizeof//cpu 32位下#include <stdio.h> #include <string.h> char str[] = "Hello"; //sizeof(str) = 6 struct size_b{ float f; char p; }block; //sizeof(block) = 20原创 2016-10-20 22:08:41 · 221 阅读 · 0 评论 -
C语言memset、memcpy、memmove和strcpy
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>/*************** src拷贝长度n给dset *******************/void *mymemcpy(void *dest, const void *src, size_t n){ char *d原创 2016-08-16 22:19:07 · 355 阅读 · 0 评论 -
C面试宝典——概念题
1.内存RAM数据段栈区(stack)——自动分配,释放,类似栈 (局部变量)堆区(heap)——程序员分配,释放,类似链表全局区(静态区static)——存放全局变量和静态变量,系统释放文字常量区(const修饰)——存放常量和字符串存储,自动释放-代码段程序代码区——存放函数体二进制代码ROM全局变量 特性 全局变量 两个全局变量可否重名 可以,局部会屏蔽全局变量原创 2016-06-21 23:27:32 · 396 阅读 · 0 评论 -
C面试宝典-(程序题)3
3.逆归反向输出字符串原创 2016-06-18 00:56:37 · 537 阅读 · 0 评论 -
C面试宝典-(程序题)1
fprintf()fscanf()原创 2016-06-17 23:04:05 · 706 阅读 · 0 评论 -
C面试宝典-(程序题)2
输出和为一个给定整数的所有组合 如:5=1+4;5=2+3#include <stdio.h>int main(){ int i; int j; int k; scanf("%d", &i); if(i%2 == 0) { j = i/2; } else { j = i/2 +1;原创 2016-06-18 00:04:00 · 671 阅读 · 0 评论 -
C内存、数组和指针
堆区 栈区 常量区 静态区类型转换 //低级到高级自动转换 char(1)、short(2)—>int(4)—->unsigned(4)—->long(4)—->double(8)<—-float(4) (字符型先转换成整型)strlen()和sizeof()的区别 1.strlen测量的是长度,sizeof测量的是已开辟的内存大小 2.strlen遇到结束符’\原创 2016-07-11 13:48:33 · 342 阅读 · 0 评论