C/C++
huihuiwith
这个作者很懒,什么都没留下…
展开
-
指定网卡发送广播包
发送端:#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <arpa/inet.h>#include <time.h>#include <string.h>#include <stdio.h>#include <unistd.h>#原创 2021-09-29 08:23:33 · 3061 阅读 · 0 评论 -
libuv 编译使用,打印调用堆栈
libuv 编译选项:CFLAGS='-g -O0 -funwind-tables' ./configure --disable-silent-rules --disable-udev --enable-debug-logmake -j8 V=1其中 -funwind-tables 可以打印详细调用堆栈。写程序使用:t1.cc#include <ux.h>#include <unistd.h>#include <signal.h>#inclu原创 2021-08-28 16:12:36 · 890 阅读 · 0 评论 -
gcc 下载
gcc 下载地址:http://ftp.gnu.org/gnu/gcc原创 2018-11-15 17:48:49 · 26180 阅读 · 0 评论 -
【VS Code】小结
1. 安装插件:C/C++ for Visual Studio CodeC/C++ Project GeneratorChinese (Simplified) Language Pack for Visual Studio Code2. 调试的时候出现:Stopping due to fatal error: NullReferenceException: Object ref...原创 2019-01-05 15:36:58 · 804 阅读 · 0 评论 -
C++11 实现的 threadpool
代码#ifndef THREAD_POOL_H#define THREAD_POOL_H#include <vector>#include <queue>#include <memory>#include <thread>#include <mutex>#include <condition_variable&...原创 2019-03-13 08:31:50 · 951 阅读 · 0 评论 -
函数实现不放在头文件的原因,及何时可以放头文件的情况
转载自:https://www.2cto.com/kf/201210/161235.html1 、引子 在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现。从开始接触,到熟练使用,几乎已经形成了下意识的流程。尽管这样的做法无可厚非,而且在不少情况下是相对合理甚至必须的,但我还是要给大家介绍...转载 2019-03-30 09:09:53 · 1016 阅读 · 1 评论 -
C 语言条件运算符
a ? b : c如果条件 a 成立 取b,不成立 取c。注意:如果 a 是小于 0 的,取b。如: int d = -1 ? 2 : 3; // d=2原创 2019-06-10 09:10:27 · 210 阅读 · 0 评论 -
const 小节
目录修饰函数参数修饰函数返回值修饰成员函数修饰成员变量修饰函数参数表示参数不能被修改,如下:void StringCopy(char*strDestination, const char *strSource);在函数参数前添加 const 表示该函数实现中不能修改 strSource 所指向的内容。因为函数调用涉及到传参,“值传递” 往往会导致参数的复制,甚...原创 2018-08-25 18:30:27 · 198 阅读 · 0 评论 -
一文说尽C++赋值运算符重载函数 ( operator= )
目录Ⅰ.举例Ⅱ.参数Ⅲ.返回值Ⅳ.调用时机Ⅴ.提供默认赋值运算符重载函数的时机Ⅵ.构造函数还是赋值运算符重载函数Ⅶ.显式提供赋值运算符重载函数的时机Ⅷ.浅拷贝和深拷贝Ⅸ.赋值运算符重载函数只能是类的非静态的成员函数Ⅹ. 赋值运算符重载函数不能被继承Ⅺ.赋值运算符重载函数要避免自赋值转自:https://www.cnblogs.com/zpcdbky/...转载 2018-08-25 14:53:01 · 244 阅读 · 0 评论 -
C函数参数传递之指针传递要注意的事项
下面一段程序中:#include #include #include #include #include int main(){ struct utmp ut; int fd = open(UTMP_FILE, O_RDONLY); int read_len = sizeof(ut); while (read_len == read(fd,原创 2018-01-10 12:00:11 · 385 阅读 · 0 评论 -
编程小知识
1. 多核CPU对单个线程一般来说,一个线程,对多核CPU来说,其对CPU的利用率应该低于 “1/核心数”(前提是只有该线程在运行) 。因为CPU只能在一个核上执行单线程程序,而且没有绑定该程序到哪个核上的话(Windows的话用API:https://msdn.microsoft.com/en-us/library/windows/desktop/ms686247(v=vs.85).aspx),...原创 2016-09-20 08:43:33 · 561 阅读 · 0 评论 -
C++小知识
1. 一切c++的成员函数编译好以后最终都是C函数(这个表述可能不太准确),静态非静态的区别在于编译后的函数是否带一个隐藏的this参数。class Foo{ void A(){}; //== Foo::A(Foo* this) static void a(){}; //== Foo::a()}; 2. boost库中sleep有两个方法:...原创 2016-09-19 09:50:20 · 414 阅读 · 1 评论 -
strcpy 和 strncpy
#include char *strcpy(char *dest, const char *src); char *strncpy(char *dest, const char *src, size_t n); strcpy() 函数将由src指向的字符串(包括终止空字节('\ 0'))复制到dest指向的缓冲区。 字符串可能不重叠,并且原创 2018-01-16 15:42:20 · 183 阅读 · 0 评论 -
char、char*、short、int、long、long long 总结
转自:http://blog.sina.com.cn/s/blog_6f62c9510101svjz.html下面的话选自《C程序设计语言》: short与long两个限定符的引入可以为我们提供满足实际需要的不同长度的整形数。int通常代表特定机器中证书的自然长度。short类型通常为16位,long类型通常为32位,int类型可以为16位或32位。各编译器可以根据硬件特性自主选转载 2018-01-10 09:54:41 · 1272 阅读 · 0 评论 -
一道C面试题(#define 宏)
有如下代码:#define MIN__MY(a,b) ((a)<=(b)?(a):(b))int main(){ int arry[5] = {10,20,30,40,50}; int *p = &arry[0]; printf("%d & %d : MIN = %d, *p = %d\n", arry[1], 10, MIN__MY(*p++,...原创 2018-03-07 13:11:44 · 866 阅读 · 2 评论 -
C++类编译器提供的默认函数
定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于class Empty{public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); ...转载 2018-04-19 14:07:17 · 476 阅读 · 0 评论 -
多级指针、多维数组
转自:http://www.cnblogs.com/chenyangyao/p/5222696.html 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的。其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法,理解多级指针和“多维”数组完全可以像理解一级指针和一维数组那样简单。 首先,先声明一些常识,如果你对这些常识还不理解,请先去弥补一下基础知...转载 2018-03-02 11:26:25 · 324 阅读 · 0 评论 -
#define 中的 # 和 ##
#define paster( n ) printf( "token " #n" = %d\n ", token ## n ) #define语句中的#是把参数字符串化,##是连接两个参数成为一个整体。注意:#n 两边的引号必须要 ## 两边的空格可有可无,不影响...原创 2018-03-01 15:48:13 · 9397 阅读 · 0 评论 -
sizeof 注意事项
sizeof是C/C++中的一个操作符(operator),作用就是返回一个对象或者类型所占的内存字节数。返回值类型为size_t,在头文件stddef.h中定义。 指针变量的sizeof(与数组不同) :等于计算机内部地址总线的宽度。所以在32位计算机中,一个指针变量的返回值必定是4(注意结果是以字节为单位),在64位系统中指针变量的sizeof结果为8。假设有代码片段: c...原创 2018-02-28 18:39:31 · 225 阅读 · 0 评论 -
一个程序占用内存的分类
转自:http://blog.sina.com.cn/s/blog_74f586a50100sv6m.html1、栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈,如果还不清楚,那么就把它想成数组,它的内存分配是连续分配的,即,所分配的内存是在一块连续的内存区域内.当我们声明变量时,那么编译器会自动接着当前栈区转载 2016-08-22 09:45:33 · 688 阅读 · 0 评论