zoukankan      html  css  js  c++  java
  • C/C++零碎知识总结

    1、八进制数

     int a = 010;

    八进制数以0开头,上面的a是9不是10;

    2、define一个常数

    #define A 123456UL

    其中UL表示是一个非负的长整数,一般在16位系统中会这么做。

    3、#define一个min函数

    #define MIN(a,b) ((a)<(b)?(a):(b))

    很多人忘记了最外面的括号

    4、typedef和define的区别

    typedef是编译的一部分,typedef是一个别名,因此具有类型检查的功能。

    define是预编译的一部分,发生在编译之前,仅仅是进行简单的字符串的替换,没有类型检查的功能。另外define可以实现函数的功能,但是typedef不行。

    在定义指针的时候,用define要注意

    #define PCHAR char*
    typedef char* pchar;
    
    PCHAR a,b;
    pchar c,d; 

    这个时候a是指针,但是b就是一个char类型,同时c和d都是指针类型。

    用宏的好处是更加的灵活,比如可以定义unsinged PCHAR a;是可以的,但是unsinged pchar a;是不对的。

    5、有些旧的代码是这样写的,要在结构提之前加入struct。

    struct aaa
    {
        
    };
    
    struct aaa a;

    为了避免麻烦,可以这样写;

    typdef struct AAA
    {
    }aaa;
    
    aaa a;

    这样就不用struct了,当然这种情况在现在的编译器中已经不存在了。

    6、

    const int a;
    int const b;
    const char* p1;
    char* const p2;
    const char* const p3;

    a和b是一样的,p1是内容是常量,不能更改,p2是指针指向的地址是常量不能更改,p3都不能更改。注意char const * p 和const char *p 是一样的。

  • 相关阅读:
    ubuntu-18.04自动配置脚本
    Nodejs on windows 10
    终端接收FFMEPG推送的流出现音频卡顿问题
    FFMPEG 4.0 版本 支持PSI设置
    FFMPEG 支持https协议
    FFmpeg修改AC3编码的描述子
    FFMPEG 设置socket缓冲区
    将 h264 格式转换为YUV数据
    将 YUV 数据 编码为 h.264 格式
    将 PCM 数据编码为AAC格式
  • 原文地址:https://www.cnblogs.com/HighFun/p/2738014.html
Copyright © 2011-2022 走看看