DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

05 2022 档案

摘要:1. 截取子串 s.substr(pos, n) //截取s中从pos开始(包括0)的n个字符的子串,并返回 s.substr(pos) //截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回 2. 替换子串 s.replace(pos, n, s1) //用s1替换s中从pos开始(包 阅读全文
posted @ 2022-05-30 11:07 DoubleLi 阅读(510) 评论(0) 推荐(0) 编辑

摘要:http://6352513.blog.51cto.com/6342513/1180742 http://blog.csdn.net/happydeer/article/details/206765 http://blog.csdn.net/sidumqz/article/details/53102 阅读全文
posted @ 2022-05-25 10:59 DoubleLi 阅读(916) 评论(0) 推荐(0) 编辑

摘要:概述 本文将以具体视频播放器开发过程中遇到的具体问题,来系统地阐释pts,dts和timebase的概念。 1.时间基 在FFmpeg开发中,经常会遇到结构体中有time_base这个成员,通过头文件查看他的类型是AVRational typedef struct AVRational{ int n 阅读全文
posted @ 2022-05-25 10:32 DoubleLi 阅读(1306) 评论(0) 推荐(0) 编辑

摘要:Have you ever thought ? 前段时间,我在编写一个 Go 程序,这个程序要做的一件事是在操作系统上执行一个命令(可执行文件或者可执行脚本),程序大概像下面这样子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 cmdSlice := strings.Field 阅读全文
posted @ 2022-05-20 16:49 DoubleLi 阅读(817) 评论(0) 推荐(0) 编辑

摘要:一、vector 1.判断某元素是否存在 vector<string> vStr; int nRet = std::count(vStr.begin(), vStr.end(), "xiaochun" ); //判断vector中是否有 "xiaochun" 这个元素 2.查找某个元素 方法一: 自 阅读全文
posted @ 2022-05-20 12:27 DoubleLi 阅读(392) 评论(0) 推荐(0) 编辑

摘要:在 C 语言中,可以采用命令 #define 来定义宏。该命令允许把一个名称指定成任何所需的文本,例如一个常量值或者一条语句。在定义了宏之后,无论宏名称出现在源代码的何处,预处理器都会把它用定义时指定的文本替换掉。关于宏的一个常见应用就是,用它定义数值常量的名称: #define ARRAY_SIZ 阅读全文
posted @ 2022-05-13 14:25 DoubleLi 阅读(551) 评论(0) 推荐(0) 编辑

摘要:一、(#)字符串化操作符作用:将宏定义中的传入参数名转换成用一对双引号括起来参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 如: #define example( instr ) printf( "the input string is:\t%s\n", #instr 阅读全文
posted @ 2022-05-13 14:21 DoubleLi 阅读(321) 评论(0) 推荐(0) 编辑

摘要:如何使用宏定义输出信息 C语言提供了#, ##, __VA_ARGS__等符号来帮助我们在宏定义中更好地输出信息。使用方式如下: 输出如下: #的作用是,它会在所引用的宏变量左右两边加一对引号。所以FUN1中的printf函数不会出错,因为FUN1(hello)预编译时被替换成了printf("he 阅读全文
posted @ 2022-05-13 10:56 DoubleLi 阅读(650) 评论(0) 推荐(0) 编辑

摘要:今天在网上突然发现了下面几个关于c代码中的宏定义的说明,回想下,好像在系统的代码中也见过这些零散的定义,但没有注意,看到别人总结了下,发现果然很有用,虽然不知有的道可用与否,但也不失为一种手段,所以就先把它摘抄下来,增加一点见识:1,防止一个头文件被重复包含#ifndef BODYDEF_H#def 阅读全文
posted @ 2022-05-13 10:45 DoubleLi 阅读(179) 评论(0) 推荐(0) 编辑

摘要:1、宏定义中#的使用在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。例: #define A(x) #x#define B(x, y) #x"."#y即 A(123) > "123" B(1 阅读全文
posted @ 2022-05-12 18:19 DoubleLi 阅读(3775) 评论(0) 推荐(0) 编辑

摘要:extern是什么及其作用 extern是c++引入的一个关键字,它可以应用于一个全局变量,函数或模板声明,说明该符号具有外部链接(external linkage)属性。也就是说,这个符号在别处定义。一般而言,C++全局变量的作用范围仅限于当前的文件,但同时C++也支持分离式编译,允许将程序分割为 阅读全文
posted @ 2022-05-09 11:51 DoubleLi 阅读(1605) 评论(0) 推荐(0) 编辑

摘要:1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a 阅读全文
posted @ 2022-05-09 11:49 DoubleLi 阅读(108) 评论(0) 推荐(0) 编辑

摘要:在编写跨平台的程序时,我们经常使用预定义宏来检测编译环境。虽然编译器的手册中有预处理宏的介绍,但是不够详细,而且还有很多宏没有介绍。于是,我编写了一个小程序,显示常见C/C++编译器的编译器的预定义宏。 心得 最直接的办法是逐个逐个的用#ifdef判断宏是否存在,然后再printf显示其内容。可是预 阅读全文
posted @ 2022-05-09 11:25 DoubleLi 阅读(447) 评论(0) 推荐(0) 编辑

摘要:C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号 阅读全文
posted @ 2022-05-09 11:19 DoubleLi 阅读(1092) 评论(0) 推荐(0) 编辑

摘要:一、运算符重载的四项基本原则: ▍不可臆造运算符。 ▍运算符原有操作数的个数、优先级和结合性不能改变。 ▍操作数中至少一个是自定义类型。 ▍保持运算符的自然含义。 二、运算符重载的两种形式: ▍成员函数形式(隐含一个参数 this 指针): 1)双目运算符:参数一个 2)单目运算符:不能显示的声明参 阅读全文
posted @ 2022-05-07 14:23 DoubleLi 阅读(251) 评论(0) 推荐(0) 编辑

摘要:对于类以及类继承, 几个主要的问题:1) 继承方式: public/protected/private继承.这是c++搞的, 实际上继承方式是一种允许子类控制的思想. 子类通过public继承, 可以把基类真实还原, 而private继承则完全把基类屏蔽掉.这种屏蔽是相对于对象层而言的, 就是说子类 阅读全文
posted @ 2022-05-07 10:41 DoubleLi 阅读(1645) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示