arraytoc.c

来自「本人收集整理的一份c/c++跨平台网络库」· C语言 代码 · 共 83 行

C
83
字号
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- *//* vi: set expandtab shiftwidth=4 tabstop=4: */#include "arraytoc.h"#include <stdio.h>// dump uint32_t as hex digitsvoid uint32_array_to_c_hex(const uint32_t* ary, int sz, const char* name){    printf("static const uint32_t %s[%d] = {\n", name, sz);    int i = 0;    for (;;) {        printf("0x%08x", ary[i]);        ++i;        if (i == sz) break;        if (i % 6 == 0) {            printf(",\n");        } else {            printf(", ");        }    }    printf("\n};\n");}/** * prints char array as a c program snippet */void char_array_to_c(const char* ary, int sz, const char* name){    printf("static const char %s[%d] = {\n", name, sz);    uint8_t tmp;    int i = 0;    for (;;) {        if (ary[i] == 0) {            printf("'\\0'");        } else if (ary[i] == '\n') {            printf("'\\n'");        } else if (ary[i] == '\t') {            printf("'\\t'");        } else if (ary[i] == '\r') {            printf("'\\r'");        } else if (ary[i] == '\'') {            printf("'\\''");        } else if (ary[i] == '\\') {            printf("'\\\\'");        } else if (ary[i] < 32 || ary[i] > 126) {            tmp = ary[i];            printf("0x%02x", tmp);        } else {            printf(" '%c'", (char)ary[i]);        }        ++i;        if (i == sz) break;        if (i % 10 == 0) {            printf(",\n");        } else {            printf(", ");        }    }    printf("\n};\n\n");}/** * prints an uint array as a c program snippet */void uint32_array_to_c(const uint32_t* ary, int sz, const char* name){    printf("static const uint32_t %s[%d] = {\n", name, sz);    int i = 0;    for (;;) {        printf("%3d", ary[i]);        ++i;        if (i == sz) break;        if (i % 12 == 0) {            printf(",\n");        } else {            printf(", ");        }    }    printf("\n};\n\n");}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?