随笔分类 -  C

摘要:自动字节对齐 不想要字节对齐的时候,有没有办法取消字节对齐?答案是可以,就是在结构体声明当中,加上__attribute__ ((__packed__))关键字,它可以做到让我们的结构体,按照紧凑排列的方式,占用内存。来段实际代码: #include <stdio.h> #include <iost 阅读全文
posted @ 2020-06-06 20:17 -零 阅读(1931) 评论(1) 推荐(0) 编辑
摘要:原文链接:c语言中动态数组的建立 作者:阿瞒123 一维动态数组的创建,这个比较简单,直接上代码 #define _CRT_SECURE_NO_DEPRECATE #include<stdio.h> #include<stdlib.h> void createOneDimensionalVector 阅读全文
posted @ 2020-05-26 19:47 -零 阅读(681) 评论(0) 推荐(0) 编辑
摘要:1.内存四区模型: 操作系统给C/C++编写的程序分配内存,通常将分配的内存划分为以下四个区域:1.1栈区(stack):栈stack是一种先进后出的内存结构,所有的局部变量,函数的形参都是由编译器自动放出栈中,当一个自动变量超出其作用域时,自动从栈中弹出,用完由操作系统自动释放1.2堆区(heap 阅读全文
posted @ 2020-04-07 20:51 -零 阅读(593) 评论(0) 推荐(0) 编辑
摘要:作者:lulipro - 代码钢琴家 出处:http://www.cnblogs.com/lulipro/ 前言 这不是我第一次写关于C指针的文章了,只是因为指针对于C来说太重要,而且随着自己编程经历越多,对指针的理解越多,因此有了本文。然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计 阅读全文
posted @ 2020-04-01 21:24 -零 阅读(688) 评论(0) 推荐(1) 编辑
摘要:C语言多态与继承 void *与函数指针、结构体是c语言能实现继承与多态的重要组成部分。 void *:万能的指针 int * 叫做指向整型的指针,而 char * 是指向字符型的指针等等。 而 void *,不要按照通常的命名方式叫它做指向 void 类型的指针,它的正式的名字叫做:可以指向任意类 阅读全文
posted @ 2020-04-01 16:36 -零 阅读(457) 评论(0) 推荐(0) 编辑
摘要:什么是函数指针 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。那么这个指针变量怎么定义呢?虽然同样是指向一 阅读全文
posted @ 2020-04-01 11:12 -零 阅读(341) 评论(0) 推荐(0) 编辑
摘要:原文链接:C语言编程优化运行速度 作者:老孙 1、选择合适的算法和数据结构 选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使 阅读全文
posted @ 2020-03-26 16:38 -零 阅读(1182) 评论(0) 推荐(0) 编辑
摘要:原文链接:C语言中 malloc函数用法 作者:无形的风 一、malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL 阅读全文
posted @ 2020-03-14 22:19 -零 阅读(1881) 评论(0) 推荐(0) 编辑
摘要:笔记整理: C语言带参数宏定义 宏定义 宏定义的一般形式为:#define 宏名 字符串或者表达式预处理的工作就是替换,就是将宏名替换成相应的字符串与表达式。 宏定义字符串: #define 宏名 字符串 该示例中的语句int sum = 20 + N;,N被100代替了 #include <std 阅读全文
posted @ 2020-03-10 22:46 -零 阅读(2618) 评论(0) 推荐(0) 编辑
摘要:字符数组与字符串 1.C语言中,没有专门的字符串变量,没有string类型,通常就用一个字符数组来存放一个字符串。2.字符串结束标志'\0',c语言中字符串总是以'\0'作为结尾。3.字符串会自动在结尾补'\0'。4.用字符数组存储字符串时,要特别注意'\0',要为'\0'留个位置,所以字符数组的长 阅读全文
posted @ 2020-02-12 18:06 -零 阅读(477) 评论(0) 推荐(0) 编辑
摘要:原则:尽量不要返回一个局部变量的指针或引用,因为函数执行完之后,将释放分配给局部变量的存储空间,局部变量只是临时的存储空间,此时,对局部变量的引用和地址就会返回不确定的内存,但可以返回局部变量本身,局部变量实际上是返回变量值的拷贝,虽然在函数调用结束后所在内存会被释放回收掉,但返回值不是地址,而是局 阅读全文
posted @ 2020-02-12 13:19 -零 阅读(2605) 评论(0) 推荐(1) 编辑
摘要:原文链接 作者 一、问题 Python模块和C/C++的动态库间相互调用在实际的应用中会有所涉及,在此作一总结。 二、Python调用C/C++ 1、Python调用C动态链接库 Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。(1)C语言文件:py 阅读全文
posted @ 2019-09-18 23:40 -零 阅读(12881) 评论(0) 推荐(0) 编辑
摘要:C语言memset函数详解 memset() 的作用:在一段内存块中填充某个给定的值,通常用于数组初始化与数组清零。 它是直接操作内存空间,mem即“内存”(memory)的意思。该函数的原型为: 函数的功能:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 in 阅读全文
posted @ 2019-09-09 13:07 -零 阅读(7047) 评论(0) 推荐(0) 编辑
摘要:原文链接 C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指 阅读全文
posted @ 2019-07-24 11:17 -零 阅读(1054) 评论(0) 推荐(0) 编辑
摘要:原文链接 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main(void) { char str 阅读全文
posted @ 2019-07-20 17:24 -零 阅读(681) 评论(0) 推荐(0) 编辑