随笔分类 -  Linux C

摘要:总结一下C语言中宏的一些特殊用法和几个容易踩的坑。由于本文主要参考GCC文档,某些细节(如宏参数中的空格是否处理之类)在别的编译器可能有细微差别,请参考相应文档。 宏基础 宏仅仅是在C预处理阶段的一种文本替换工具,编译完之后对二进制代码不可见。基本用法如下: 1. 标示符别名 预处理阶段,foo = 阅读全文
posted @ 2018-06-12 11:28 ralap7 阅读(16017) 评论(0) 推荐(2)
摘要:atoi()函数 atoi()原型: int atoi(const char *str ); 函数功能:把字符串转换成整型数。 参数str:要进行转换的字符串 返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0。 注意:使 阅读全文
posted @ 2018-06-12 09:45 ralap7 阅读(58014) 评论(0) 推荐(2)
摘要:说明:所有题目均摘录于网络以及我所见过的面试题目,欢迎补充! 无特殊说明情况下,下面所有题s目都是linux下的32位C程序。 1、堆和栈有什么区别? (1)栈由操作系统分配和释放;堆则是程序员手动去申请释放; (2)栈是一块连续的内存区域,也就是栈顶地址和栈的最大容量是系统规定的;堆是不连续的内存 阅读全文
posted @ 2018-06-08 00:09 ralap7 阅读(2360) 评论(0) 推荐(0)
摘要:说明:所有题目均摘录于网络以及我所见过的面试题目,欢迎补充! 无特殊说明情况下,下面所有题s目都是linux下的32位C程序。 先来几个简单的热热身。 1、计算以下sizeof的值。 sizeof(str1)=? sizeof(str2)=? sizeof(ptr)=? sizeof(book)=? 阅读全文
posted @ 2018-06-06 23:39 ralap7 阅读(7596) 评论(0) 推荐(0)
摘要:遇到了一个关于const修饰的变量值是否能修改问题,虽然我知道const变量在某些情况下可以通过指向它的指针来间接修改,但是对原理还是很模糊,今天就整理了一下。 一、三个试验压压惊 1、直接对const变量修改 编译一下,看看出现什么情况: 很遗憾,编译出错了。 2、const变量通过指针修改试验 阅读全文
posted @ 2018-05-31 11:21 ralap7 阅读(14828) 评论(1) 推荐(0)
摘要:转载地址:https://blog.csdn.net/zqixiao_09/article/details/50877383 一、什么是内联函数 在C语言中,如果一些函数被频繁调用,不断地有函数入栈,即函数栈,会造成栈空间或栈内存的大量消耗。 为了解决这个问题,特别的引入了inline修饰符,表示为 阅读全文
posted @ 2018-05-26 16:32 ralap7 阅读(3922) 评论(0) 推荐(0)