随笔分类 - c&c++
摘要:char []定义的是一个字符数组,注意强调是数组。char * 定义的是一个字符串指针,注意强调是指针。char *s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以: 当char *s = “hello”;后,不能使用s[0]=‘a’;语句进行赋值。这是将提
阅读全文
摘要:C语言:fgets和fgetc函数读取文件 1、fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。 fgetc() reads the next character from stream and returns it as an unsigned char ca
阅读全文
摘要:一、strstr()函数用来检索子串在字符串中首次出现的位置,其原型为: char *strstr( char *str, char * substr ); 1、头文件:#include <string.h> 2、参数说明:str为要检索的字符串,substr为要检索的子串。 3、返回值:返回字符串
阅读全文
摘要:一、access()函数用来判断用户是否具有访问某个文件的权限(或判断某个文件是否存在). 二、需要包含#include<unistd.h> 三、参数和返回值 int access(const char *pathname,int mode) 参数: pathname:表示要测试的文件的路径 mod
阅读全文
摘要:C语言可变参数个数的函数学习 一、学习测试C代码 #include <stdio.h> #include <stdarg.h> void fixed_args_func(int a, double b, char *c,int d) { printf("a = 0x%p\n", &a); print
阅读全文
摘要:C语言宏定义中#符号和##的妙用 一、 宏定义可以包含两个专用的运算符:#和##。编译器不会识别这两个运算符,他们会预处理时被执行。 二、#运算符的用法 (1)#运算符用在预编译时期,用于将宏参数转换为字符串,即是加上双引号。 (2)测试代码 #include <stdio.h> #define P
阅读全文
摘要:一、大小端简介 大小端是计算机存储的两种方式。 小端表示法(Little-endian): 所谓的小端模式,是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。如: 16bi
阅读全文
摘要:C语言#error #line #pragma预处理学习 一、#error 的用法 (1)#error 是一种预编译器指示字,用于生成一个编译错误消息 (2)用法:#error message //注意:message 不需要用双引号包围 (3)#error 编译指示字用于自定义程序员特有的编译错误
阅读全文
摘要:gcc 进行 c 语言编译分为四个步骤: 1.预处理,生成预编译文件(.i 文件): gcc –E hello.c –o hello.i 2.编译,生成汇编代码(.s 文件): gcc –S hello.i –o hello.s 3.汇编,生成目标文件(.o 文件): gcc –c hello.s
阅读全文
摘要:一、函数原型 snprintf(),为函数原型int snprintf(char *str, size_t size, const char *format, ...)。 二、函数介绍 将可变个参数(...)按照format格式化成字符串,然后将其复制到str中(1) 如果格式化后的字符串长度 <
阅读全文
摘要:【参考连接】 SWIG 基本概念和入门 [SWIG] SWIG原理(以C#为例)
阅读全文
摘要:在刚刚接触 socket 时,遇到了 htons() 函数,就直接懵逼了,这是什么东西,有什么用?就查了一些资料。 htons() 是网络字节序与主机字节序之间转换的函数。用生活中的例子来说,有一串数字 12345678 现在我们是从左往右读的,以前的人是从右往左读的。当你要给以前的人读的话就要把这
阅读全文
摘要:1、单#的作用是把参数变成字符串;2、##的作用是连接组合参数名字;废话不多说,看个简洁的例子就明白了 #include <iostream.h> using namespace std; #define TEST0(arg) cout << arg << endl #define TEST1(ar
阅读全文
摘要:在C语言中每个数据类型都有他的对齐方式 例如 char 是一个一节对齐 ,int 是 四个字节对齐,float是八个字节对齐,short是两个字节对齐 由于对齐方式的特性就会拥有相同成员的结构体占有的内存却是不一样的。 下面这个例子 struct test1{ char a; short b; in
阅读全文
摘要:这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式。 #pragma pack (n) 作用:C编译器将按照n个字节对齐。#pragma pack () 作用:取消自定义字节对齐方式。 #pragma pack (push,1) 作用:是指把
阅读全文
摘要:用途: 从数据层主动向GUI层更新数据 Object-C 的代理 Qt信号槽 对象间通讯的一种机制 函数指针实现回调函数: #include <stdio.h> //函数指针 typedef void (*FUNCTION_CALLBACK)(char *buffer,int bufferSize)
阅读全文
摘要:有时候,我们需要在函数体的内部申请内存空间并初始化,然后将内部申请的存储空间交付给外部指针来引用,这时候,我们可以使用二级指针作为申请空间的函数的参数来实现。 main.c文件: #include <stdio.h> #include <stdlib.h> #include <string.h> #
阅读全文
摘要:return:表示函数返回,当main函数return时表示程序运行结束. exit():无论在哪个函数调用,都会导致程序结束。
阅读全文
摘要:在面向对象的编程语言中,很多语言会根据引用计数器来实现对对象的自动回收机制,就和Unix/Linux中的文件系统那样,当一个对象被另一个对象持有时,被持有的对象自身的引用计数器会加1。只要对象还被引用,即引用计数器还未被清0,那么我们对对象执行释放操作,只是将对象的引用计数器减1。直到对象的引用计数
阅读全文

浙公网安备 33010602011771号