写在前面

工作学习经历

我在2019年11月找到了第一份实习,在神州数码信息服务担任Java实习生,公司是分部所以人数不多只有一个办公楼层。刚开始上班的时候真的很痛苦,同事基本不会带,全靠自己摸索。前几个星期,公司安排任务让学习帆软FineReport报表开发工具,然后根据需求文档自己做一个报表页面,前期着实困难花了一个多月才勉勉强强弄出来。后面要再开发这个报表页面的维护功能,比如修改删除啥的,用Java实现,这个项目很老了,我所学的SSM那些技术完全用不上,看了代码发现写的SQL语句还是跟Java代码混合在一起的!花了三个多星期加上同事指导,前后端开发,也是勉强做好了。熟悉了一段时间后,我发现公司基本上是负责数据运维的,也就是专门负责处理数据库相关的工作。当时觉得前路一片灰暗,项目老学不到东西,跟老同事的关系也不怎么好,遇上今年疫情,离职了。

第一份工作总结:学到了数据可视化报表FineReport的使用,写sql的能力得到了加强。工作中,沟通的能力真的很重要,还要和同事打好关系,遇到问题也好解决,遇到不会的要多问。这份工作问的少,当时报表开发的时候真的苦痛。另外培养一些个人的兴趣爱好对于融入团队也很有好处,比如打篮球。工作之后的影响:以前学的东西差不多全忘了。


第二份工作是Java开发工程师,最后进去的时候变成了Mes开发工程师。公司叫福州汉思,可以说是外包公司,负责广汽传祺MES系统维护。笔试题全是基础题包括:几道选择,三个简答和一道大题,是写sql的。当时觉得福利不错,有五险一金包住,上班有车送过去,工资还行,就去了。去了才知道我错了,原因有下:第一个就是公司不发电脑用,得过了试用期才能申请电脑,流程复杂,还好刚换了电脑够用,忍了;二是,伙食说是可以报销,但是这其实很坑,公司要求你有发票才能报销,相当于没有(长知识了),每天接近20一餐午饭,关键还很难吃;三是,公司规模是真的小,去人家厂里上班,同事也是10个人不到的样子,其他的全是人家公司的,问问题也没处问;四,有一大堆管理制度,看的头疼,起码7个pdf的管理制度;五,这是我决定离职的主要原因,公司对试用期员工有三个月的考核期,要求员工每日都要写工作日报,上传svn,并发送邮箱给好几个同事看。考核期其中分了几个小阶段,要求试用期员工完成阶段性的学习并且做出成果,之后开视频会议答辩。每日工作日报真的折磨,这还要持续三个月,思前想后,我呆了一个星期离职了。

第二份工作总结:我觉得做开发人员,每天要写工作日报的工作还是离职吧,他还有字数限制,我真的吐了,光是想凑字数都不知咋整,每天6点下班后花半个多小时搞这个,这将浪费多少时间,很离谱,我有这时间还不如多学知识;要是周报还可以接受,上份工作也是周报。真是公司小事情多啊,,


投的简历石沉大海,逐渐觉得Java的前景不太好了,培训的人多,竞争大,学习成本也大;看到室友都由Java转型并且成功入职了,我也放弃了找Java的工作,打算找c++的工作;基础不好,学了一段时间重新投简历,入职了新的公司。想不到造化弄人,做开发的同事基本都是c嵌入式开发,而我的工作方向却是是app前端,还好公司目前还没有什么很紧的项目要做,招我进来基本上是学习为主。打算边学习边写博客记录学习情况。

以上是我的个人工作经历。

<think>嗯,用户想知道头文件是不是应该在主函数前面。首先,我得回忆一下C/C++的基本结构。头文件通常包含函数声明、宏定义这些,对吧?比如#include <stdio.h>或者#include <iostream>。那主函数是程序入口,也就是main()函数。 那为什么要把头文件放在前面呢?因为编译器在编译的时候是从上到下处理的。如果主函数里调用了某个函数,比如printf,但之前没有包含stdio.h,编译器就不知道这个函数的声明,会报错或者警告。所以头文件需要先包含,这样编译器在遇到函数调用的时候已经知道它们的声明了。 然后,可能用户还不太清楚头文件的作用。头文件里可能有函数原型、结构体定义、宏之类的。比如,如果不包含math.h,用sqrt函数的时候可能会出错,虽然有些编译器可能允许链接,但最好还是正确包含。 另外,用户可能代码的时候遇到过错误,比如“implicit declaration of function”,这时候就是因为没有包含正确的头文件。所以需要把相关的头文件放在主函数前面,确保所有用到的函数和变量都有声明。 还有可能用户看到别人的代码里,头文件都在最前面,所以想知道是不是必须这样做。根据C/C++的语法规则,是的,必须先包含头文件,再主函数。不过有时候头文件可能被包含在其他地方,比如在函数内部,但这种情况很少见,也不推荐。 总结一下,头文件必须在主函数前面,这样编译器能正确识别所有声明,确保程序顺利编译。</think>在 C/C++ 语言中,**头文件必须在主函数前面**。这是由编译器的处理逻辑决定的,具体原因和规则如下: --- ### 一、为什么需要前面? 1. **编译顺序** 编译器从上到下逐行处理代码。头文件(如 `#include <stdio.h>`)中包含了函数声明、宏定义等,若未提前声明,编译器遇到主函数中的 `printf()`、`scanf()` 等函数时会因无法识别而报错。 2. **作用范围** 头文件中的内容(如数据类型、库函数)需在主函数使用前生效。例如: ```c #include <stdio.h> // 必须放在 main() 前 int main() { printf("Hello World"); // 编译器需要提前知道 printf() 的声明 return 0; } ``` --- ### 二、具体规则 1. **标准头文件** 如 `<stdio.h>`、`<math.h>` 等系统头文件必须放在主函数前: ```c #include <math.h> // 提供 sqrt() 函数声明 int main() { double x = sqrt(25.0); // 正确:编译器已知道 sqrt() 的声明 return 0; } ``` 2. **自定义头文件** 自定义头文件(如 `#include "myheader.h"`)同样需要前置: ```c #include "myheader.h" // 自定义函数的声明 int main() { my_function(); // 正确:声明已在头文件中 return 0; } ``` 3. **例外情况(不推荐)** 理论上,头文件可以放在函数内部(如主函数前部),但会导致代码可读性差且违反编程规范: ```c int main() { #include "temp.h" // 极不推荐!仅用于理解原理 return 0; } ``` --- ### 三、错误示例分析 若头文件未前置,编译器会报 **“隐式函数声明”** 错误: ```c int main() { printf("Error Example"); // 错误:未包含 stdio.h,编译器不知道 printf() 的声明 return 0; } ``` 编译器提示: ``` warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] ``` --- ### 四、总结 - **必须将头文件在主函数前**,确保编译器提前获取函数、变量的声明。 - 头文件可以是系统提供的(如 `<stdlib.h>`)或自定义的(如 `#include "utils.h"`)。 - 违反此规则将导致编译错误或未定义行为。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值