来看一个C语言笔试题,应该很少有人能给出正确答案。
#includeint f(){ printf("this is f ... "); return 1; } int g(){ printf("this is g ... "); return 2; } int main() { printf("%d %d ", f(), g()); return 0; }
代码很简单,函数 f 输出一个字符串,返回整数 1。
函数 g 输出一个字符串,返回整数 2。
主函数中用 printf 输出两个函数的函数值,后面的参数一个是函数 f,一个是函数 g。
运行程序应该会有三行输出,两个函数输出两个,主函数中再打印两个数字。
问题是,这三个输出的顺序应该是什么样的?有没有同学能看出答案,可以写在评论区。
运行程序,先打印 g,再打印 f,最后输出 1 2。
这个结果确实耐人寻味,先调用了函数 g,然后再调用函数 f,写在前面的反而最后调用。
不过这还没结束,再来换个 ARM 平台。
相同的代码,这次却先输出 f,再输出 g,顺序和参数的顺序一致。
好像已经看出了结果,调用的顺序不一定,得看编译器。
最后,再来看下C语言官方文档,确实提到了这一点,函数参数的计算顺序属于为指定行为。
之所以未指定,是想让编译器充分利用自身架构的特点,所以在写代码的时候,不要依赖他们的计算顺序。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
183文章
7649浏览量
146340 -
代码
+关注
关注
30文章
4981浏览量
74505
原文标题:又一个无解笔试题
文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
嵌入式春招笔试高频算法题(附解题思路)
的应届生、新手打造,整理了5道嵌入式春招笔试高频算法题,覆盖数组、链表、字符串、进制转换等核心考点,每道题都附上“题干+解题思路+C语言代码实现”,贴合嵌入式笔试场景,可直接复制练习,
发表于 03-18 10:08
C语言安全编码指南:MISRA C、CERT C、CWE 与 C Secure 标准对比与Perforce QAC应用详解
如何编写真正安全的C语言代码?指南涵盖MISRA C、CERT、CWE等国际安全编码标准对比,以及如何借助Perforce QAC自动检测漏洞。推荐给嵌入式/汽车/工业软件的开发者!
汽车网络安全开发语言选型指南:C/C++/Rust/Java等主流语言对比+Perforce QAC/Klocwork工具支持
汽车网络安全如何选编程语言?C、C++、Rust、Java……谁更适合AUTOSAR、ISO/SAE 21434?一文了解8种主流语言的优劣与适用场景,以及Perforce QAC/K
C语言的分支结构介绍
1.简单if语句
C语言中的分支结构语句中的if条件语句。
简单if语句的基本结构如下:
代码语言:javascript
if(表达式)
{
执行代码块;
}
其语义是:如果表达式的值为真,则执行其后的语句,否则不执
发表于 11-25 07:48
C语言特性
1、高效性:直接操作硬件
C 语言代码的执行效率极高,这是其最为显著的优势之一。它能够直接访问硬件资源,与底层硬件进行紧密交互,充分发挥硬件的性能潜力。在嵌入式开发中,硬件资源往往十分有限,对程序
发表于 11-24 07:01
常见电子类硬件笔试题整理(含答案)
violation,画图说明,并说明解决办法。(威盛VIA2003.11.06上海笔试试题)
Setup/hold time是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号
发表于 06-27 15:05
最全的硬件工程师笔试试题集
硬件面试题之一
1、下面是一些基本的数字电路知识问题,请简要回答之。
(1) 什么是 Setup 和 Hold 时间?
答:Setup/Hold Time 用于测试芯片对输入信号和时钟信号之间的时间
发表于 06-26 15:34
常见电子类硬件笔试题整理(含答案)
violation,画图说明,并说明解决办法。(威盛VIA2003.11.06上海笔试试题)
Setup/hold time是测试芯片对输入信号和时钟信号之间的时间要求。建立时间是指触发器的时钟信号
发表于 05-26 14:30
主流的 MCU 开发语言为什么是 C 而不是 C++?
在单片机的地界儿里,C语言稳坐中军帐,C++想分杯羹?难喽。咱电子工程师天天跟那针尖大的内存空间较劲,C++那些花里胡哨的玩意儿,在这儿真玩不转。先说内存这道坎儿。您当stm32f4的
C语言笔试题
评论