09-01 关于;;和“参数”: 从“time_t”转换到“unsigned int”,可能丢失数据和C 语言代码出错为什么显示「烫烫烫」

Posted dongjiaonakeshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了09-01 关于;;和“参数”: 从“time_t”转换到“unsigned int”,可能丢失数据和C 语言代码出错为什么显示「烫烫烫」相关的知识,希望对你有一定的参考价值。

关于出现 ;; ?

  单独一个分号相当于空语句,不影响,但不规范。

例:int i;; 等价于

  int i;

  ;

关于从“time_t”转换到“unsigned int”,可能丢失数据?

  这个警告是由于新版本的VC里time_t是64位的,而srand接受32位的unsigned int,所以会丢失数据。

  改成  srand((unsigned)time(NULL));  强制转换time_t到unsigned int就可以了。

关于C 语言代码出错为什么显示「烫烫烫」?

  局部变量在没有初始化时, C语言规范要求是随机值。

  但VC系列没有按照这个规定来做, 而是把没有初始化的栈空间赋值为0xCC。

  于是 在输出未初始化的局部变量字符串时,就会输出

  0xCC对应的字符. 而两位代表一个汉字, 0xCCCC就是汉字烫。

  可以将的结构体中定义的字符数组都初始化为0

技术图片

以上是关于09-01 关于;;和“参数”: 从“time_t”转换到“unsigned int”,可能丢失数据和C 语言代码出错为什么显示「烫烫烫」的主要内容,如果未能解决你的问题,请参考以下文章

从 time_t 和 tm 转换的错误值

time_t

没有合适的从“const std :: string”到“time_t”的转换函数

在 Python CFFI 中声明包含 time_t 字段的结构

如何通过 COM 传递 time_t 或仅传递其日期信息

time_t和SYSTEMTIME之间的相互转换