C语言
Agoni_xiao
懒...
展开
-
IO分割
昨天写了一个小程序,具体功能是实现IO分割的。题目:将给定的一个IO的起始位置,再给定一个长度,比如(24542,16438),将其分割成几个小的IO,分割要求是1, 不足16的单独处理2, 满8192的一大块,单独处理3, 不足8192但大于16的放一起处理。例子, 如给定IO(24542,16438),分割结果如下:(24542,24544)(2原创 2017-11-01 08:37:53 · 469 阅读 · 0 评论 -
main函数执行前发生了什么
main函数的身前1. 编译器缺省是找__start符号,而不是 main2. __start 这个符号是程序的起始点3. main 是被标准库调用的一个符号我们写程序,比如一个模块,通常要有 initialize和de-initialize,但是我们写 C程序的时候为什么有些模块没有这两个过程么呢?比如我们程序从main开始就可以 malloc,free,但是我们原创 2017-10-24 17:45:35 · 1090 阅读 · 0 评论 -
结构体的大小,对齐方式,点运算符和箭头运算符,#pragma pack(4)
结构体的基本知识(C语言)1、结构体的大小偏移量:结构体变量中成员的地址和结构体变量地址的差。结构体大小=最后一个成员的偏移量+最后一个成员的大小。结构体变量中第一个成员的地址就是结构体变量的首地址,那结构体的大小就是每个成员大小之和,但实际并不是。实际上,由于存储变量时地址对齐的要求,编译器在编译程序时会遵循两条原则:a.结构体变量中成员的偏移量必须是成员大小的整数倍(0被认原创 2017-12-15 15:21:34 · 632 阅读 · 0 评论 -
multiple definition of(变量或者函数)
今天在公司写项目的时候,遇到如下错误,半个小时了,没看出来问题出在哪里~我看了好几遍代码,确认没有重定义,后来问旁边的大牛,才发现自己手误,错吧#include “area.h”写成#include"area.c",千万得小心啊·有时候心里想的跟手上写的会不一样哈。于是写这篇博客以示警戒,并将这类错误的避免方法做以总结。1,条件编译是个好习惯#ifndef TEST_H ...#define TE原创 2018-01-02 16:21:59 · 25258 阅读 · 1 评论 -
int(有符号数) 和unsigned int(无符号数)-->逻辑右移与算术右移
首先,先看一个例子~这个问题测试是否懂得C语言中的整数自动转换原则,有些开发者懂得极少这些东西。当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此,从这个意义上讲,无符号数的运算优先级要高于有符号数,这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。1、隐式转换 C在以下四种情况下会进行隐式转换: 1、算术运算式原创 2018-01-12 14:33:54 · 5252 阅读 · 1 评论 -
C语言基础知识(一)结构体struct 和typedef struct区别
C与C++中struct 和typedef struct区别从三个方面对比1、声明变量方便:在C语言中,常常见到typedef修饰结构体,如:#include<stdio.h>typedef struct _TEST{ int value; char mat; }TEST;int main(){ TEST a; //struct TEST a pr...原创 2018-09-12 15:10:52 · 967 阅读 · 0 评论