
C语言
linux-Gao
爱好linux 嵌入式
展开
-
指针相减
指针相减问题 最近学习指针时,有一道练习题如下,可以加深自己对指针的理解和使用。#include <stdio.h>int main(){ int a[] = {1,2,3,4}; int *p1 = a; int *p2 = &a[3]; printf("%d\n",p2-p1); return 0;} 问:p2-p1=? 这里我们要注意的是:指针相减原创 2017-11-09 15:47:33 · 632 阅读 · 0 评论 -
运算符优先级
题 :1 解:1 << ( 1+1) = 4 先算术运算,后移位运算,最后位运算题 : 1 解:(1 < 2) | 4 = 1 | 4 = 5 比 | 优先级高优先级优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。相同优先级中,按结合顺序计算。大多数运算是从左至右计算,只有三个优先级是从右至左结合的,它们是单目运算原创 2016-10-25 00:28:13 · 353 阅读 · 0 评论 -
宏实现大小端转换
宏实现大小端转换/* 定义多行宏时在每一行后面加 '\' */#define sw16(x) \ ((short)( \ (((short)(x) & (short)0x00ffU) (((short)(x) & (short)0xff00U) >> 8 ) )) 假设x=0xaabb(short)(x) & (short)原创 2016-10-25 00:18:57 · 11515 阅读 · 1 评论 -
进程PID获取方法
C语言与shell获取进程pid方法原创 2018-07-10 20:19:50 · 15070 阅读 · 0 评论 -
linux设备堆栈大小限制
问题情景:在设备运行过程中,进程在执行一函数(function_B)时崩溃了。添加打印信息发现,进程不是由于段错误退出,且在执行到function_A后,并没有进入B函数(在B函数第一行添加打印,未输出)执行,然后进程死亡。问题原因:C语言程序执行时会先检查函数的堆栈,linux系统会有一个默认的堆栈大小限制,在B函数中,由于一个数组分配空间过大(2M),栈空间大小超出了限制,不能...原创 2018-07-13 18:04:33 · 10928 阅读 · 0 评论