日常小问题汇总

1、strrchr()函数:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。
2、strstr() 函数:搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。

3、

do
{
    ...
}while(0)  
有个好处里面运行可以直接break到下面代码而不用goto

4、使用strncpy_s 比 使用strncpy更加安全

5、 int const *  |  p  
 p就是一个普通的指针变量,可以指向任意一个int值,但是指向的int值是一个不变常量
 int *        |   const p
 p是const常量,p是const所以不能变,也就是p指向的地址不可变,但是指向的地址中对应
 的内存是可改变的

6、Debug编译成功运行时提示缺失ACEd.dll等dll,就是要把这些文件放入到输出文件目录(在VS配置属性链接器常规里面设置输出文件路径)

7、好多这种用法:

class CDownload:
{
public:
<strong>    static CDownload &Instance()
      {
             static CDownload s;
             return s;
      }</strong>
    void Start(uString strPostfix); 
}
<strong>CDownload::Instance().</strong>Start(strPostfix);
</pre><pre code_snippet_id="325463" snippet_file_name="blog_20140504_2_7731808" name="code" class="cpp">

8、在宏定义define中经常看到两个字符串##和#,这里把它的用法做一下说明:      
    ##是一个连接符号,用于把参数连在一起         
         例如: > #define  FOO(arg)   my##arg       则 > FOO(abc)  相当于   myabc           
   #是“字符串化”的意思。出现在宏定义中的#是把跟在后面的参数转换成一个字符串         
         例如: > #define STRCPY(dst, src)   strcpy(dst, #src)   则  > STRCPY(buff, abc) 相当于 strcpy(buff, "abc")        
   另外,如果##后的参数本身也是一个宏的话,##会阻止这个宏的展开 。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值