zoukankan      html  css  js  c++  java
  • C语言经典代码段

    (1)自定义bool变量

    由于C语言中没有bool变量,我们可以自定义一个,然后放在全局的头文件中。

    typedef enum
    {
        false = 0,
        true = 1
    } bool;


    (2)计算数组的大小(长度)

    #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))

    (3)求最大值、最小值

    #define MAX(x, y) ((x) >= (y) ? (x) : (y))
    #define MIN(x, y) ((x) >= (y) ? (y) : (x))

    (4)空循环防错写法

    #define DO_NO_THING()
    #include <stdio.h>
    
    #define DO_NO_THING()
    
    int main(int argc, char* argv[])
    {
        int number = 34;
    
        while (number++ == 123)
        {
            DO_NO_THING();
        }
    
        return 0;
    }

    (5)两层for循环防错写法

    for (row = 0; row < MAX_ROWS; row++)
    {
        for (col = 0; col < MAX_COLUMNS; col++)
        {
         table[row][col];
    // do_something(); } }


    (6)置1某位,清0某位,获取某位

    #define SET_BIT(x, n) (x |= (1 << n))    // 将x的第n位置1
    #define CLR_BIT(x, n) (x &= ~(1 << n))   // 将x的第n位清0
    #define GET_BIT(x, n) ((x >> n) & 0x01)  // 取得x的第n位的值
    #include <stdio.h>
    
    #define SET_BIT(x, n) (x |= (1 << n))
    #define CLR_BIT(x, n) (x &= ~(1 << n))
    #define GET_BIT(x, n) ((x >> n) & 0x01)
    
    int main(int argc, char* argv[])
    {
        char ch = 0x84;
    
        printf("%d\n", ch);
    
        SET_BIT(ch, 3);
        printf("%d\n", ch);
    
        CLR_BIT(ch, 3);
        printf("%d\n", ch);
    
        printf("%d\n", GET_BIT(ch, 0));  // 0表示最低位
         printf("%d\n", GET_BIT(ch, 1));
        printf("%d\n", GET_BIT(ch, 2));
        printf("%d\n", GET_BIT(ch, 3));
    
        return 0;
    }

    (7)打印一维数组

    void printArray(int arr[], int cnt)
    {
        int i = 0;
        for (i = 0; i < cnt; i++)
        {
            printf("%d ", arr[i]);
        }
        printf("\n");
    }

    (8)打印二维数组

    #include <stdio.h>
    
    void printArray2D(int *arr, int rowCnt, int colCnt)
    {
        int row = 0;
        int col = 0;
    
        for (row = 0; row < rowCnt; row++)
        {
            for (col = 0; col < colCnt; col++)
            {
                printf("%d ", *(arr + row * colCnt + col));
            }
            printf("\n");
        }
    }
    
    int main(int argc, char* argv[])
    {
        int ia[2][4] =
        {
            {2, 7, 2, 6},
            {5, 3, 9, 1}
        };
    
        printArray2D(&ia[0][0], 2, 4);
        //printArray2D(ia, 2, 4);  可以实现功能,但是会有警告,因为指针的类型不同
    
        return 0;
    }

    待续...

  • 相关阅读:
    Java菜鸟之java基础语法,运算符(三)
    Lotus迁移到Exchange 2010 POC 之Domino Server的配置!
    hibernate:对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误解决办法
    【targeting学习笔记】Display Advertising Targeting
    Domino 迁移到Exchange 之 Domino Admin 安装!
    sqlite3使用详解(Qt版本)
    .net反混淆脱壳工具de4dot的使用
    破解NET的四大神器(转)
    C#让应用程序只运行一个实例的几种方法
    Windows server 2008 R2实现多用户远程连接
  • 原文地址:https://www.cnblogs.com/Robotke1/p/3089112.html
Copyright © 2011-2022 走看看