分类 C 下的文章

宇托 C 0 条

最近做一个32位转64位的项目,需要把之前的警告全部改成非警告版。之前是用VS2005编译的,现在改成用VS2017编译。在编译过程中,发现fopen是警告,警告说要改成fopen_s,但改完之后,发现跟原来的要求不同了。这个项目中,要求文件是不锁定的,也就是说常驻程序执行过程中,也能随时复制更新文件。但改成fopen_s之后,发现文件无法复制了。找了一下MSDN的说明,内容如下:Files opened by fopen_s a...

宇托 C 1 条

在C语言或者C++中,Side effect(负效应)表示对变量文件进行更改,比如c#i = i + 1;、c#i++;等。Sequence point(序列点)表示对该时间点而言,之前的处理必须要完全完成,比如c#func(func1(), func2())在调用func函数之前就是一个序列点,在这之前c#func1()和c#func2()必须执行完成。下面来介绍C语言中的Sequence point(序列点)。C语言中Sequ...

宇托 C 0 条

C语言中,有数据类型隐式转换的处理,具体表现为以下三个方面。整形数值定义时的隐式转换未指定类型的函数调用时的隐式转换运算时的隐式转换整形数值定义时的隐式转换在整形定义时,如果未明确指定整形的后缀(参考:C语言的数值类型及其定义与输出 ),就会发生隐式转换。其规则如下:定义的数值常量在int的值范围(-2147483648 ~ 2147483647)内,默认为int。定义的数值常量在int的值范围外,但在unsigned int的值...

宇托 C 0 条

在C语言中,数值类型可以分成两个大类:整形数值和浮点型数值。整形数值有五种类型:char,short,int,long和long long。这五种类型又分别有带符号(signed)和不带符号(unsigned)两种,默认为signed。浮点型数值有三种类型:float,double和long double。浮点型数值没有带符号和不带符号的区别。各种数值类型所占内存大小和取值范围现在基本上没有16位的机器了,除long之外,其它所有...

宇托 C, Linux, String, Windows7 0 条

在C语言中,printf表示把字符串格式化输出到终端。sprintf表示把字符串格式化输出到另一个字符串。而snprintf表示把字符串格式化之后,输出指定位数到新的字符串。我们看下面一段代码。#include <stdio.h> #define COPY_LENGTH 5 int main() { char buff[100] = {0}; int result = snprintf(buff, ...

宇托 C 0 条

最近进入了一个C语言的项目组,之前从没有做过C语言的项目,虽然大学时学了一些,但感觉很多东西还是不懂。比如GDB调试的方法,大学里就从来没学过。从其它成员,以及网上学了一些,GDB调试的一些简单用法基本上学会了。为了让自己以后不至于忘记。记录下来。编译要使用GDB,在用GCC编译时,要加上-g的参数。不然是没法在GDB里看到代码。另外要注意的是,用-g的参数编译,它并不是把源代码编译到可执行文件(或者类库)里,而只是把源代码的目录...

宇托 C, DateTime, Format 0 条

在C语言里,要取得当前时间,必须引入头文件time.h。然后用time()来取得当前时间,然后再用localtime()来转化为本地时间,之后再用strftime()来格式化输出。注意,这种方法取得时间的最小单位是秒,如果要取得更小单位的时间,要用其它方法。各函数在time.h里的定义三个函数的定义如下:time_t time(time_t *_Time); struct tm * localtime(const time_t *...

宇托 C, CPP, Eclipse 0 条

下载带CDT的Eclipse或多合一的Eclipse,安装编译器mingw,配置好就行了。下载CDT的Eclipse,下载地址:http://www.eclipse.org/downloads/,或者下载多合一的版本,之前我写了一篇多合一Eclipse:http://yutuo.net/archives/4ae1ddbd10f0fe24.html。下载之后解压。 下载mingw,下载地址:http://sourceforge.ne...