C语言
灞波儿渀
现在,即是最好的时光!
展开
-
C语言中枚举变量的长度问题
枚举enum长度一般和系统编译器有关系,大小可以指定修改的,一般应该是4(int、unsigned int)如下示例:enum { AB_TEST_ENUM_1 = -1, AB_TEST_ENUM_2 = 2147483649, } AB_TEST_ENUM;AB_TEST_ENUM_1赋值为-1,那一般以int类型为准,当AB_TEST_ENUM_2赋值超过2147483647的时候,sizeof(AB_TEST_ENUM)的长度应该就是8,否则长度应该是4。如下示原创 2020-06-29 09:58:00 · 4205 阅读 · 1 评论 -
C语言 数据存储类别
数据存储类别,分别为自动的(auto),静态的(static),寄存器的(register)和外部的(extern)。下面对它们进行逐一说明:auto类型:其实在函数中的局部变量,不加特殊声明,都是auto变量,但是关键字"auto"可以被省略。这些变量在函数被表用时分配存储方式,函数调用结束后这些存储空间就被释放了。static类型:被static声明的变量为静态变量,函数调用结束后,这些...转载 2016-06-19 22:08:44 · 374 阅读 · 0 评论 -
C语言输出有颜色的字体
先看下面的一段代码:#include <stdio.h>int main(int argc,char **argv){ printf("\033[44;37;5m hello world\033[0m\n"); return 0;}编译后运行上述代码,结果如下:可见,此时输出的字体和背景已经有了颜色。由上可知,在输出时候加上 “\033[...原创 2017-08-29 19:29:01 · 49317 阅读 · 18 评论 -
SylixOS下移植glib时clock_gettime函数分析
1. 问题分析 移植glib中间件时,运行测试用例出现异常错误,定位问题为g_clock_gettime函数获取的时间和系统API获取的时间不一致导致。 glib中间件中g_get_monotonic_time函数原型如程序清单 1.1所示。程序清单1.1 g_clock_gettime函数原型gint64 g_get_monotonic_time (v原创 2017-12-02 13:47:14 · 909 阅读 · 0 评论 -
gcc编译后执行正常,g++编译后执行段错误Segmentation fault (core dumped)
在调试程序时候,遇到奇怪的问题:gcc编译程序后执行正常,但是g++编译后执行段错误,报Segmentation fault (core dumped)。纠结了很久,一直定位报错就是指针操作异常导致的,看了很久代码也没有找到具体的问题。最后重新从接口看代码,看到一个变量在使用的时候没有初始化,终于找到了问题。问题是由于该变量没有init为0,但是gcc编译后该变量的值默认为0,但是g+...原创 2019-06-13 14:28:56 · 1610 阅读 · 0 评论 -
libcurl下载文件断网后,重新连接网络下载阻塞
使用libcurl库下载文件时,调用curl_easy_perform接口执行下载。下载过程中断网再连接网络,则有可能会出现程序不退出,但也没有继续下载的问题。因此可以通过设置下载超时设置,在超过时间程序会因为超时而退出。curl_easy_setopt( curl, CURLOPT_TIMEOUT, 50);通过CURLOPT_TIMEOUT设置超时时间,如上述,50S后程序如果...原创 2019-08-22 14:44:03 · 1819 阅读 · 1 评论