据说是月薪2W的笔试题

简介:

话说,有这样一道据说是月薪2W的笔试题:

#include "stdio.h"
void print()
{
*
}
void main()
{
}

        要求在*部分写代码使整个程序运行后输出“hello world”,有些人说,这还不简单啊,于是写出这样的代码:

01. #include "stdio.h"
02. void print()
03. {
04.     printf("hello world");
05. }
06. void main()
07. {
08.     print();
09. }

        这样写的确是没问题,但是违背了题目的要求,因为题目不允许修改main函数,这下仿佛我们就没辙了,因为我们学习C/C++语言的时候,明确说明main函数是程序的主函数,也是程序的入口函数,可是现在主函数为空,那怎么会执行子函数呢?

        其实这个笔试题考察的不是我们对基本知识的理解,而是要学会发现问题解决问题的能力,有时候,当一条路走不通的时候,我们就要换一条路,通过查找资料,我们发现其实C++是可以修改入口函数的。

        这里需要一个C++预编译标识符 #pragma comment()   来帮助我们搞定这个问题。他的使用类型是:pragma comment( comment-type ,["commentstring"] )。

        comment-type是一个预定义的标识符,指定注释的类型,应该是compiler,exestr,lib,linker之一。

        commentstring是一个提供为comment-type提供附加信息的字符串。

        这里我们需要使用linker来修改链接设置:

#pragma comment(linker, "/entry:print")

        看到了么?通过/entry参数来设置程序链接时候的主函数为print,这样,就相当于print函数是整个程序的主函数,他替换了main函数的作用,相反的,main函数则成为了一个子函数

        完整的代码和运行结果如图所示:

        至于#pragma comment(lib, "msvcrt.lib")是因为使用了puts函数,如果使用printf的话可以不要这一句

 






本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/archive/2013/04/25/3042531.html,如需转载请自行联系原作者

目录
相关文章
|
算法
蓝桥杯算法竞赛第一周题型总结
蓝桥杯算法竞赛第一周题型总结
80 0
|
存储
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯12届省赛C++b组真题-填空题
113 1
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
【蓝桥杯冲刺】蓝桥杯11届省赛C++b组真题-填空题
131 0
|
网络协议 Java 程序员
双非二本程序员,年近30,5年间在大厂中横跳,工资翻了三番
高流动性是中国程序员的一大特点。对于大部分IT程序员来说,要达成个人目标,经历不确定性是一种必然选择。 今年,一个很早入职大厂的朋友不再期望在公司内部实现升职,选择走上一条更冒险的路,花了半年的时间准备阿里某子公司的面试,顺利通过跳槽升职加薪。这是一条他通过坚持跳槽走出来的路。 能够轻易跳槽离不开一个原因,很多程序员的工作技术门槛不高,也没有太多独特性,会的技术赶不上知识迭代,换一个人,两三个月也立马上手了。 所以想要入职大厂,求职者们最基本的准备便是在面试前刷题——解题能力越强,被选中的机率更高。“至少要刷四五百道,你才能让面试官高看一眼”,面试题库不但和实际工作内容有关联,还可以在面
|
机器学习/深度学习 算法 数据库
华科2018年笔试题大概
华科2018年笔试题大概
|
算法 搜索推荐
2015年华科834复试笔试题
2015年华科834复试笔试题
|
算法 调度 数据库
2016年华科834复试笔试题
2016年华科834复试笔试题
AcWing 669. 加薪
AcWing 669. 加薪
102 0
AcWing 669. 加薪
|
算法
牛客网———公务员面试
牛客网———公务员面试
206 0