
C++
文章平均质量分 84
清海风缘
这个作者很懒,什么都没留下…
展开
-
C语言extern作用示例说明
首先提问, 下面2句有什么区别? 在运行时会有什么结果?示例1#include <stdio.h>extern int g_id = 10; // extern, 并初始化int main(int argc, char **argv){ // 打印值 printf("g_id is %d\n", g_id); // 取地址 printf("g_id ...原创 2020-01-22 09:45:18 · 1049 阅读 · 0 评论 -
C#调用C的Dll(类型对照)
转: C#调用C的Dll(类型对照)//C++中的DLL函数原型为 //extern "C" __declspec(dllexport) bool 方法名一(const char* 变量名1, unsigned char* 变量名2) //extern "C" __declspec(dllexport) bool 方法名二(const unsigned char* 变量名1, ch转载 2016-12-05 15:43:01 · 5180 阅读 · 1 评论 -
C/C++,字符串的UTF-8与GBK(或GB2312)编码转换
转: C/C++,字符串的UTF-8与GBK(或GB2312)编码转换写代码时经常会遇到各种编码转换问题,因此记录下来以便日后对各种平台下不同编码转换作整理。C/C++:GBK(或GB2312)转UTF-8实现:[cpp] view plain copystring GBKToUTF8(const char* strG转载 2016-12-07 13:13:26 · 5615 阅读 · 0 评论 -
C#调用C++编写的DLL函数各种参数传递问题
转: C#调用C++编写的DLL函数各种参数传递问题 1. 不返回值的参数 C++ 原型: bool SendNewSms(char *szTel, char *szMessage); C#引用; [DllImport( "CdmaCard.dll",EntryPoint="SendNewSms")] publ转载 2016-12-07 13:28:42 · 490 阅读 · 0 评论 -
c++ 中__declspec 的用法
c++ 中__declspec 的用法语法说明:__declspec ( extended-decl-modifier-seq )扩展修饰符:1:align(#) 用__declspec(align(#))精确控制用户自定数据的对齐方式 ,#是对齐值。e.g__declspec(align(32)) struct Str1{int转载 2016-12-08 08:38:03 · 1407 阅读 · 0 评论 -
static_cast 和 reinterpret_cast
>作者: 阙荣文(querw@sina.com)转: http://blog.youkuaiyun.com/querw/article/details/7387594C/C++是强类型语言,不同类型之间的相互转换是比较麻烦的.但是在编程实践中,不可避免的要用到类型转换.有2中类型转换:隐式类型转换和强制类型转换.1.隐式类型转换1.1 提升精度,此种是编译器自动转载 2016-09-27 10:03:39 · 400 阅读 · 0 评论 -
C++的反思
转: C++的反思最近两年 C++又有很多人出来追捧,并且追捧者充满了各种优越感,似乎不写 C++你就一辈子是低端程序员了,面对这种现象,要不要出来适时的黑一下 C++呢?呵呵呵。咱们要有点娱乐精神,关于 C++的笑话数都数不清:笑话:C++是一门不吉祥的语言,据说波音公司之前用ADA为飞机硬件编程,一直用的好好的,后来招聘了一伙大学生,学生们说我靠还在用这么落后的语言转载 2016-11-28 08:52:28 · 474 阅读 · 0 评论 -
为什么我希望用C而不是C++来实现ZeroMQ
转: 为什么我希望用C而不是C++来实现ZeroMQ 英文原文:Why should I have written ZeroMQ in C, not C++ 开始前我要先做个澄清:这篇文章同 Linus Torvalds 这种死忠C程序员吐槽 C++ 的观点是不同的。在我的整个职业生涯里我都在使用C++,而且现在 C++ 依然是我做大多数项目时的首选编程语言。自然的,当我从转载 2016-11-28 08:59:16 · 941 阅读 · 0 评论 -
C 的回归
转: C 的回归周末出差,去另一个城市给公司的一个项目解决点问题。回程去机场的路上,我用手机上 google reader 打发时间。第一眼就看到孟岩大大新的一篇:Linux之父话糙理不糙 。主题是 C 与 C++ 的语言之争。转到刘江的 blog 下读完了 Linux之父炮轰C++:糟糕程序员的垃圾语言 大呼过瘾。立刻把链接短信发给了几个朋友。语言之争永远是火药味十足的话题。转载 2016-11-28 09:03:56 · 397 阅读 · 0 评论 -
Why C++ Is Not “Back”
转: Why C++ Is Not “Back”Are you here because you want to learn C++?Learn to Program with C++I love C++.C++ taught me how to really write code.Back in the da转载 2016-11-28 09:30:04 · 4016 阅读 · 0 评论 -
__declspec(dllimport)的作用
转: __declspec(dllimport)的作用是时候总结一下__declspec(dllimport)的作用了。可能有人会问:__declspec(dllimport)和__declspec(dllexport)是一对的,在动态链接库中__declspec(dllexport)管导出,__declspec(dllimport)管导出,就像一个国家一样,有出口也有进口,有什么难理转载 2016-12-05 15:19:04 · 436 阅读 · 0 评论 -
C++ Exe与Dll之间传递标准库容器条件
要在EXE和DLL间传递std::list之类的标准库容器,需要满足两个条件:(1) EXE和DLL均使用同一个版本的编译器编译(2) EXE和DLL均动态链接到CRT运行库(/MD)转载 2016-12-01 13:07:54 · 968 阅读 · 0 评论 -
是返回错误码,还是抛出异常?说说我的选择
转: http://blogread.cn/it/article/4572?f=hot1昨晚翻了翻《 松本行弘的程序世界 》这本书,看到他对异常设计原则的讲述,觉得颇为赞同。近期的面试,我有时也问类似的问题,但应聘者的回答大都不能令人满意。有必要理一理,说说我是怎么理解的,以及在编程实践中如何做出合适的选择。当然这只是一家之言,未必就是完全正确的。首先,要明确一点的是,错误码和异常转载 2016-11-14 16:18:01 · 2633 阅读 · 0 评论 -
方法重载和重写的区别
转: 方法重载和重写的区别答一: 根本区别: 重写(重构)很直观啊,子类覆盖了父类的同名同参同返回值的方法,用子类调用的只会是重写的方法 重载,同名而已。 答二: 1、重载: 方法名相同,参数列表不同 2、重写: 也叫覆盖,指在子类中定义一个与父类中方法同名同参数列表的方法。因为子类会继承父类的方法,而重写就是将从父类继承过来的方法重新定义一次,重新填写方法中的代码。 答三:重写是子类转载 2016-09-27 22:22:27 · 457 阅读 · 0 评论 -
C++11 多线程中的call once
C++11 多线程中的call once http://blog.youkuaiyun.com/cywosp/article/details/8968655转载 2016-09-29 23:33:09 · 483 阅读 · 0 评论 -
[精] C++11中once_flag,call_once实现分析
[精]C++11中once_flag,call_once实现分析 http://www.tuicool.com/articles/QbmInyF 原文 http://blog.youkuaiyun.com/hengyunabc/article/details/33031465转载 2016-09-29 23:36:34 · 1133 阅读 · 0 评论 -
头文件的包含以及命名空间的引入尽量写在cpp里
转: http://blog.youkuaiyun.com/u012234115/article/details/400199451,头文件尽量包含在cpp文件里,而不是h文件里放在.cpp文件中是比较安全的,文件在多次递归包含后很容易出现一些定义和声明上的问题。 放在cpp中可以减小头文件依赖,可以提高编译速度。所以,能放在cpp中的,就不要放在h中。 只有头文件必须用到的放到头文件,头文件中可以使用前置转载 2016-09-30 13:00:48 · 821 阅读 · 0 评论 -
视频: 6分钟演示15种排序算法
视频: 6分钟演示15种排序算法原创 2016-10-16 23:07:27 · 1238 阅读 · 0 评论 -
【C++11】显式转换操作符
转: https://my.oschina.net/jthmath/blog/511895隐式类型转换是C++的一个既好又坏的特性。它给人以方便,但可能造成一些十分隐晦的错误。类型转换提供了一个类型向另一个类型的构造。class X{public: operator int() const noexcept { return 42;转载 2016-10-17 08:38:40 · 923 阅读 · 0 评论 -
STL sort源码剖析
STL sort源码剖析STL的sort()算法,数据量大时采用Quick Sort,分段递归排序,一旦分段后的数据量小于某个门槛,为避免Quick Sort的递归调用带来过大的额外负荷,就改用Insertion Sort。如果递归层次过深,还会改用Heap Sort。本文先分别介绍这个三个Sort,再整合分析STL sort算法(以上三种算法的综合) – Introspective Sorting转载 2016-10-28 13:49:27 · 343 阅读 · 0 评论 -
C++核心指南
转: [Github项目]C++核心指南摘要: C++11和C++14到来,背后一定带来了新的设计哲学,新的解决C++问题的思路。https://github.com/isocpp/CppCoreGuidelines是一个很好的指引。 C++作为一门多范型的语言,有灵活性。再加上C++的一些技巧,一些坑,很多公司都有自己的C++编码规范。这些规范一般都是建议什么该用,什么不该用,怎么去命名之类。没转载 2016-10-29 18:23:25 · 1740 阅读 · 0 评论 -
__stdcall 和 __cdecl 的区别浅析
转: __stdcall 和 __cdecl 的区别浅析__stdcall 和 __cdecl 的区别浅析,需要的朋友可以参考一下1. __cdecl__cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,由调用者负责把参数压入栈,最后也是由调用者负责清除栈的内容,一般来说,转载 2016-11-29 08:42:22 · 414 阅读 · 0 评论 -
C++使用CriticalSection实现线程同步实例
转: C++使用CriticalSection实现线程同步实例这篇文章主要介绍了C++使用CriticalSection实现线程同步实例,是使用CriticalSection对前文实例的扩展,具有一定的参考借鉴价值,需要的朋友可以参考下本文实例讲述了C++使用CriticalSection实现线程同步的方法,在前文C++线程同步实例分析的基础上增加了四行代码,转载 2016-12-15 13:46:45 · 608 阅读 · 0 评论 -
VC生成静态库release版比debug版库文件尺寸更大的原因
MSDN社区上的帖子:《Static lib release build is larger than debug build??》 StackOverflow上的讨论:《Release LIB is huge compared to debug》得出的结论是,此问题是由VS的Build选项中Optimization项下的Whole Program Opeimization选项不同设置引起:Deb转载 2016-12-24 13:40:46 · 1377 阅读 · 0 评论 -
一个进程在内存中的布局
转: 一个进程在内存中的布局对于一个完整的程序,在内存中分布情况如下图: 值得一提的是:在C#中struct存放在栈区,class存放在堆区,所以一般struct要比class要快的。 堆和栈的比较表(仅针对C++) 栈(Stack)堆(Heap)申请方式转载 2017-01-11 09:35:36 · 370 阅读 · 0 评论 -
使用kbhit()和getch()无阻塞接收用户键盘输入
前言在我们平时控制台程序的编写过程中,一般情况下都是需要暂停控制台界面,等待用户输入数据之后,程序才会继续运行下去。但是某些情况下,我们希望在循环在用户输入一个按键时才响应特定程序。 常规做法是使用多线程, 如: 子线程中执行任务, 主线程线程中检测用户输入, 然后根据用户输入, 来控制工作线程状态; 如果仅仅是快速做测试, 可以使用C语言中的kbhit()和getch()来实现上述功能. 个原创 2017-01-16 11:26:03 · 13938 阅读 · 2 评论 -
VS clang编译错误 error : unable to execute command
VS clang编译错误 error : unable to execute command: Unable to convert command-line to UTF-16: 在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符在VS2015 update3 Debug x86下使用clang3.9.1编译程序出现下面错误:clang-cl.exe :原创 2017-01-23 10:38:29 · 5937 阅读 · 0 评论 -
用c++11打造类似于python的range
转: 用c++11打造类似于python的range python中的range函数表示一个连续的有序序列,range使用起来很方便,因为在定义时就隐含了初始化过程,因为只需要给begin()和end()或者仅仅一个end(),就能表示一个连续的序列。还可以指定序列产生的步长,如range(0,10,8)产生的序列为[0, 8], 默认的步长为1,range(3)表示的序列是[0,1,转载 2017-01-23 10:51:08 · 813 阅读 · 0 评论 -
每个国家对应的语言Locale和国家代码对照表
转: 每个国家对应的语言Locale和国家代码对照表DNN3支持多语言,希望下面的语言代码与对应国家能对你有所帮助语言代码国家/ 地区"" (空字符串)无变化的文化af公用荷兰语af-ZA公用荷兰语 - 南非sq阿尔巴尼亚sq-AL阿尔转载 2017-01-24 10:13:24 · 23021 阅读 · 0 评论 -
华为面试题一例 - 逆序输出此单词字符串, 并保留最后的标点
// test.cpp : 定义控制台应用程序的入口点。//// 华为面试题// 给定一个单词字符串, 如: "We are all Welcome you to HuaWei!", 逆序输出此单词字符串, 并保留最后的标点// 符号不变, 如: "HuaWei to you Welcome all are We!"// #include "stdafx.h"#include原创 2017-06-24 10:29:20 · 504 阅读 · 0 评论 -
extern int 和extern const int的区别?
示例1:文件test.cppconst int age = 30;文件 main.cpp#include extern const int age;int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); printf("age = %d\n", age); r原创 2017-08-16 11:20:02 · 4647 阅读 · 0 评论 -
Vs2010可以进行单个cpp文件调试
以前以为在VS(如: vs2010)下只能对工程项目进行调试, 对有些大工程, 如我司的某个Qt项目, 加载时间足足要30多分钟, 很是麻烦. 今天亲自试了一下, 发现VS”附加到进程调试”工具, 可以对单cpp文件进行调试. 即: 附加调试的程序你可能只想调试其中某一个cpp文件, 那么久不用将其整个工程文件都加载进来, 只使用”打开”将需要调试的cpp文件打开, 并加上断点, , 启动”附加调原创 2017-10-16 09:05:14 · 16836 阅读 · 0 评论 -
C++ 头文件汇总 extern const, const 区别理解
C++ 头文件汇总 extern const, const 区别理解举例说明:ex1:// demo.h// 注意: 这里仅仅只是MyAge的声明, 而非定义, 在对应的.cpp文件中应该要有其定义式: // 如:// demo.cpp// const int MyAge = 30// //extern const int MyAge;// 注意: 这里虽然加...原创 2018-09-11 12:02:18 · 4057 阅读 · 0 评论 -
模板函数/类不能导出到动态链接库(DLL)
该文章转自http://hi.baidu.com/htvhsztnrubhxze/item/f98427fd02fd2718e3e3bd79模板函数在声明的时候, 其实并不存在,函数地址也就无从谈起了,而导出到动态链接库的函数都需要有地址,也就是说——函数模板不具备导出的基本条件。函数模板在调用时后,有了具体的实现,这个时候才有了地址。 如果要导出,必须将参数类型列表具体化,比如说,有这么一个模板:转载 2017-01-11 09:31:24 · 2239 阅读 · 0 评论 -
C++ const的一些理解
条目1: 头文件中的const全局变量C++头文件中,定义全局const变量默认是static的, 所以在头文件中定义全局const变量, 前面不需要添加static防止重复定义, 即使添加了也不会出错—-没有副作用.条目2: 勿要在头文件中定义”非const”及”static 非const”全局变量C++头文件, 定义全局非const变量, 如果不添加static, 则会出现重复定义链接错误,原创 2017-01-09 13:05:13 · 558 阅读 · 0 评论 -
动态链接库中导出模板函数
转: 动态链接库中导出模板函数C++ 支持函数模板,利用函数模板,可以简化我们的程序代码。我在自己的代码中也经常用到函数模板,但是以前一直以为函数模板是要放到头文件中的,否则调用模板函数时,编译器会找不到函数模板的定义。今天闲暇,又翻了翻 C++ Primer,发现我以前的理解是有问题的。模板函数也可以像普通函数那样,将声明放在头文件中,定义放在.cpp 中。这时又想到另一个问题,转载 2016-12-24 13:29:05 · 1744 阅读 · 0 评论 -
C++ 库研究笔记——通过inline避免hpp 的mutiple definition 异常
转: C++ 库研究笔记——通过inline避免hpp 的mutiple definition 错误C++用了这么多年,这个却第一次知道,以前没用过hpp这样:// foo.hppvoid foo() { /* body */ }// a.cpp#include "foo.hpp"// b.cpp#include "foo.hpp"出现错误:m转载 2016-12-24 13:30:49 · 1245 阅读 · 0 评论 -
VC C/C++ 函数调用约定(最全)
转: VC C/C++ 函数调用约定(最全) 函数调用约定 常见的函数调用约定[5]:cdecl,stdcall,fastcall,thiscall,naked call MFC调用约定(VS6:Project Settings->C/C++ Calling convention:) 1, __cdecl(C调用约定.The C default calling转载 2016-12-24 13:33:09 · 4294 阅读 · 0 评论 -
招聘: C++ Developer-高性能交易系统开发
招聘: C++ Developer-顶尖交易公司-上海• Key Skills: 5 years+ experience in C++, management experience, STL, template, Linux• Website: www.akunacapital.comCV send to lucy.luo@akunacapital.comWho We AreAkuna Capita转载 2016-12-24 13:34:50 · 1147 阅读 · 0 评论 -
Thread Local Storage (TLS)
Thread Local Storage (TLS)Visual Studio 2015Other Versions For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.Thread转载 2016-12-24 13:47:58 · 761 阅读 · 0 评论