c 语言
h490516509
这个作者很懒,什么都没留下…
展开
-
((void(code *)(void))0x0000)()的理解
首先去括号得到(void(code *)(void))0x0000,这句话很明显是把0x0000强制类型转换成某个东西。然后再去括号得到void(code *)(void),这句话的意思是一个函数指针类型,无参数,无返回值。整体的意思是把0x0000当做一个无参数无返回值的函数指针,再对这个函数进行调用。其作用就是调用0x0000位置处存放的某个函数代码...转载 2019-03-19 11:44:05 · 2112 阅读 · 0 评论 -
MII与RMII接口的区别
作者:f大熊来源:CSDN原文:https://blog.csdn.net/fun_tion/article/details/70270632版权声明:本文为博主原创文章,转载请附上博文链接!PHY是物理接口收发器,它实现物理层。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层、MDI子层。1. 概述...转载 2019-03-18 13:00:09 · 14580 阅读 · 0 评论 -
stm32f4 lwIP开发笔记
原理:https://blog.csdn.net/zhaozhiyuan111/article/details/79197692RMII (Reduced Media Independent Interface) 简化媒体独立接口MII :媒体独立接口,也叫介质无关接口。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图...原创 2019-03-18 12:52:22 · 5277 阅读 · 0 评论 -
const关键字
const关键字的作用主要有以下几点:(1)可以定义const常量,具有不可变性。 例如:const int Max=100; int Array[Max];(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改;(3)可以避免意义模糊的数字出现,同样可以很方...转载 2019-03-04 11:54:37 · 95 阅读 · 0 评论 -
assert()函数用法总结
转:https://blog.csdn.net/fengtian12345/article/details/80529510assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include <assert.h>void assert( int expression ); assert的作用是现计算表达...转载 2019-03-08 14:12:39 · 646 阅读 · 0 评论 -
gcc 编译器
这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录任何的dos 命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用他 但是,我会慢慢的补齐的.哈哈 假如您要转在本文章请保留我email(pianopan@beeship.com)和文章的全面性. [介绍] gcc and ...转载 2019-02-24 17:26:01 · 131 阅读 · 0 评论 -
关于NULL , 0 , 0.0 真假
NULL, 0 , 0.0 都是假的,非0为真原创 2019-02-24 16:49:57 · 810 阅读 · 0 评论 -
volatile 应用
1)并行设备的硬件寄存器(如:状态寄存器)2)一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)3)多线程应用中被几个任务共享的变量1)一个参数既可以是const还可以是volatile吗?解释为什么。2)一个指针可以是volatile 吗?解释为什么。3)下面的函数被用来计算某个整数的平方,它能实现预期设计目标吗?如果不能,试回答...转载 2018-12-28 11:10:40 · 104 阅读 · 0 评论 -
volatile的作用
1.0 要求编译器不对所修饰的寄存器进行优化 例如:对一个寄存器连续进行三次咐值进行解锁,可以会被编译器把前两次优化了,因为编译器会认为前两次咐值毫无意义 a = 1 ; a = 0 ; a = 1; 写者意思是想解锁,但最后结果变成只一次咐值。2...原创 2019-02-27 18:06:59 · 95 阅读 · 0 评论 -
回调函数及函数指针数据
#include<stdio.h>int handle_msg1(int argc , char **argv){ printf("%s\n" , "msg 1"); for(int i = 0 ; i < argc ; i++) { printf("%s\n" , argv[i]); }}int handle_msg2(int argc , char...原创 2019-01-15 17:04:48 · 159 阅读 · 0 评论 -
字符串换行问题
如printf("%s :this is the right...");//因为输出字符串太久,一行没法写完,换成两行如:printf("%s :this is the" //the 后面因为没有空隔会产生 theright ,实际想the right 对于数据库 "right..."); // ...原创 2019-01-15 16:15:55 · 1174 阅读 · 1 评论 -
结构体与数组
数组1.0 数组定义 1.1 无初始值:int arr[10]; //局部变量如果没有赋值则随机。全局或静态变量则系统初始化为0. 1.2 有初始值:int arr[10]={10,20,30}; //没有赋值的补0 char arr[20] = ''hello world"...原创 2019-01-07 10:21:50 · 730 阅读 · 0 评论 -
C语言运算符
第一级 . -> () [] ---------------------------------------------------------------------------------- int *p[] ; 在这可以看出,p先与[]先结合,所以这个是数组指针 数组指针的应用:char *pstr[]={"hello w...原创 2018-12-11 15:12:14 · 101 阅读 · 0 评论 -
c/c++下取消结构体字节对齐方法
转:作者:码中飞翔来源:CSDN原文:https://blog.csdn.net/wanxuexiang/article/details/86658855版权声明:本文为博主原创文章,转载请附上博文链接!c/c++下取消结构体字节对齐方法在c/c++下编译器会默认地对结构体进行对齐,其对齐的方法跟平台具体的特性有关,本文主要介绍结构体不进行对齐的方法。1、结构体字节不进行...转载 2019-05-09 14:00:38 · 2276 阅读 · 0 评论