跑在main之前

OpenHarmony 5.1 RK3568 开发板烧录:从源码编译到镜像写入的 6 步实战 本文详细解析了OpenHarmony 5.1在RK3568开发板上的全链路开发流程,包括环境搭建、源码编译、镜像烧录等6个关键步骤。通过实战指南和避坑技巧,帮助开发者快速掌握OpenHarmony系统的烧录与定制能力,提升物联网设备开发效率。 阅读详情

最初发表在QQ空间(这里贴图不方便),全文见 跑在main之前 和 跑在main之前 (2) ,有图有真相。大笑

通常这是一个面试题,如何让一段代码跑在main()函数前面。一个熟练的C++开发者能够轻易给出答案,即静态初始化。

在C里面又如何呢,有没有办法做到这点?下面讲一个VC里的方法。

int initBeforeMain()
{
printf( "initBeforeMain (%p)/r/n", initBeforeMain );
return 0;
}

int init2BeforeMain()
{
printf( "init2BeforeMain (%p)/r/n", init2BeforeMain );
return 0;
}

int initBreak()
{
DebugBreak();
return 0;
}

typedef int (*pInit)();

// for C

// put following table between __xi_a and __xi_z

#pragma data_seg( ".CRT$XIU" )
pInit start[] = {initBeforeMain, init2BeforeMain, initBreak, };
#pragma data_seg()

// for C++

// put following table between __xc_a and __xc_z

#pragma data_seg( ".CRT$XCU" )
pInit start2[] = {initBeforeMain, init2BeforeMain, initBreak, };
#pragma data_seg()

// for C

// put following pointer between __xi_a and __xi_z but after start

#pragma data_seg( ".CRT$XIU" )
pInit start3 = initBreak;
#pragma data_seg()

int main( int argc, char* argv[] ) {}


在调试器里执行一下,看看效果如何,有没有给你surprise。

..... (全文见上方链接)

 

 

ardupilot 为什么要采样四元数姿态控制 本节主要说明清楚ardupilot姿态控制为什么要用到四元数,欢迎批评指正!!! 阅读详情

相关推荐

RV1126上YOLOv8部署实战:从模型转换到板端推理的完整避坑指南

本文提供了在瑞芯微RV1126芯片上部署YOLOv8目标识别算法的完整实战指南。内容涵盖从模型转换、环境搭建到板端推理代码编写的全流程,重点解析了RKNN-Toolkit使用、量化配置、内存优化及后处理实现等关键环节的常见问题与解决方案,旨在帮助开发者高效避坑,实现边缘AI应用的稳定落地。

pz89012345的博客 568

main函数前的秘密

如何让一段代码跑在main()函数前面。一个熟练的C++开发者能够轻易给出答案,即静态初始化。    除此之外,下面讲一个VC里的方法。int initBeforeMain() { printf( "initBeforeMain (%p)\r\n", initBeforeMain ); return 0; } int init2BeforeMain() { printf( "in

ithzhang 2735

《C语言小游戏之贪吃蛇程序代码》

//为广大编程游戏爱好者提供一个参考的游戏源代码#include<stdio.h>#include<conio.h>#include<windows.h>#include<time.h>#define framex 5#define framey 5#define wide 20#define high 20int i,j,a[2];//将光标移动到...

qq_42052821的博客 2万+

让自己的函数在main函数之前执行

最近在处理一段代码的时候遇到一个问题:一个数据段的指针需要重新设置,想让这个过程用独立的代码实现,而不在main函数中添加新的代码,这就需要一种能在main函数之前运行的机制,网上查了一下,还真有。   以下内容摘自网络   在 gcc 中 #include __attribute((constructor)) void before_main() { printf("%s\n"

nbabn的专栏 665

【验证技能树】UVM 源码解读01 -- UVM本质上就是软件工程方法论在芯片验证领域的应用

文章摘要: UVM(通用验证方法学)是基于SystemVerilog的芯片验证框架,采用组件化、面向对象和事务级抽象设计。其核心在于职责分离与数据流,通过Driver、Monitor、Sequencer等模块协作实现高效验证。UVM强调复用性、可扩展性和可维护性,类似软件工程的模块化与低耦合原则。理解其体系结构比记忆API更重要,有助于灵活组合组件并提升验证效率。UVM不仅是工具,更融合了软件工程思维,推动验证工作向自动化、系统化发展。掌握UVM底层逻辑能优化验证环境设计,适用于从IP到SoC的多层级验证场

qq_45869788的博客 1041

【异常】XXL-JOB提示异常ERROR com.xxl.job.core.util.XxlJobRemotingUtil - connect timed out

打开XXL-JOB的ELK,发现一堆报错。

奶爸的编程之路,也就一周冷个三天 2048

C++ 如何让代码在main()函数之前或者之后执行

程序最早执行的函数其实并不是main,在main函数之前会有一系列初始化的操作(通常是由链接器等完成的)。比如在windows中,这个函数是mainCRTStartup,这个函数是链接器执行以初始化运行时库的,此函数又会调用CRTInit函数,该函数会对C全局变量、C内存分配以及C++中的全局类对象和构造函数进行初始化工作。

HelloKandy's Blog 2083

从Raw图像到超分辨率:真实场景下的图像增强全流程指南

通过本文的学习,您已掌握了利用Raw图像实现真实场景超分辨率的完整技术链——从数据生成的“真实感模拟”,到双分支CNN的“细节+色彩”协同建模,再到模型的训练与落地。本文将带您从理论到实践,掌握利用Raw图像实现真实场景超分辨率的核心技术,让您的图像在细节和色彩上都能“更上一层楼”。是相机传感器直接输出的原始数据,保留了最完整的亮度、色彩信息(如Bayer阵列的原始采样),这为超分辨率提供了“富矿级”的信息基础。该分支以低分辨率RGB图像为参考,学习“色彩变换矩阵”,让恢复的细节拥有真实的色彩表现。

FJN110的博客 144

如何在main()函数之前执行一些代码

在控制台程序中,main函数是用户定义的执行入口点,当程序编译成功之后,链接器(Linker)会将mainCRTStartup连接到exe中,exe执行时,一开始先mainCRTStartup,这是因为程序在执行时会调用各种各样的运行时库函数,因此执行前必须要初始化好运行时库,mainCRTStartup函数会负责相应的初始化工作,他会完成一些C全局变量以及C内存分配等函数的初始化工作,如果使用C...

kernweak的博客 9412

YOLOv8改进---BiFPN特征融合

yolov8结合BiFPN进行改进

qq_41920323的博客 4523

道家学派创始人老子,对 SAP ABAP 这门编程语言的客观评价

SAP HANA 之引入,使 ABAP 于处理大数据,云计算等新兴领域,展现新的生命力,如老吾老以及人之老,幼吾幼以及人之幼,扩展其在信息技术领域的应用,以涵养更广之需。ABAP 能以数据为基,流转于系统之中,如道法自然,顺应企业之生态,助之以高效运转,减少冗杂,简化管理,使企之运营,如小国寡民,无为而治。然 ABAP 如老树盘根,更替不易,面对新兴技术,如云计算、大数据等,其更新之速,未能与时俱进。如水之于渊,柔而能胜刚,ABAP 之发展,顺时而动,应需而变,其在编程领域,犹如道之于万物,渐不可或缺矣。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1027

C语言--在main函数执行之前执行函数

在mian函数执行之前执行函数

qq_47870634的博客 655

2026 企查查/天眼查:IP频率限制 + 验证码策略,企业工商数据采集实战

企业工商数据采集技术解析与解决方案 本文深度剖析了2026年企查查和天眼查平台的反爬机制与技术对抗方案。主要内容包括: 反爬机制分析: 采用JA4+ TLS指纹识别、极验v6验证码等多层防护 IP限制策略严格区分未登录/普通/VIP账号 精准识别并封禁数据中心IP 核心解决方案: 构建高可用住宅代理池,动态轮换真实用户IP 基于YOLOv8的验证码缺口识别技术(准确率99%) 分布式架构设计,支持千万级数据采集 多账号池管理与行为模拟技术 技术亮点: 动态住宅IP池实现1%以下封禁率 Playwright浏

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1327

在纯C工程的main函数之前跑代码

在main函数之前跑代码的方法 方法: 手工找到程序入口点, 替换为我们自己的函数 写测试程序 // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include /// 程序入口点 00671140 >|? 55

博客标题不能为空 1167

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

在C++工程中main函数之前跑代码的廉价方法

// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include /// 在C++工程中main函数之前跑代码的廉价方法 /// 利用全局变量可以赋可变初值的事实 /// mainCRTStartup() => _cinit() => 全局变

博客标题不能为空 1161

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

在 main 函数之前执行代码(C 语言)

constructor 属性可以使函数在 main 函数之前执行

lyndon 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

c++如何让函数在main()之前或之后运行

目录main() 执行前main运行前可运行哪些代码1.全局对象的构造函数会在 main 函数之前执行。2. 全局变量、对象和静态变量、对象的空间分配和赋初值3. 进程启动后,要执行一些初始化代码那main() 执行后呢?4. 通过关键字__attribute__ 对于编程人员来讲,main 函数是程序的入口,但事实上 main 函数之前也发生了很多操作。在 main 函数开始前,分成两部分 “系统调用部分” 和 “C++ 程序自身的部分” main() 执行前 入口函数对运行库和程序运行环镜进行初始化,

qq_38836770的博客 7619

【转载】一个c程序在执行main函数之前和main之后都做了那些事情

转自:https://bbs.youkuaiyun.com/topics/300103318#r_78088969 main函数之前--真正的函数执行入口或开始一种解释实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备:   _osver操作系统的构件编号_winmajor 操作系统的主版本号_winminor 操作系统的次版...

weixin_30847271的博客 142

main 之前与之后

我之所以提出这个问题,缘于一些IT公司招聘开发人员的笔试题或者面试题:C++ 中能不能让一些代码在 main() 之前或者之后执行? 答案理所当然可以的。 这可以有很多实现方法。下面例举: 1、一般来说,全局域的变量(包括静态变量)赋值、初始化等工作都是在main之前执行的

fatshaw的专栏 1735

C++:main函数之前发生了什么??

顺序事件说明1ELF 加载OS 加载可执行文件,找到入口_start2执行_start来自crt1.o,是启动代码3调用初始化环境、调用构造函数4执行正式进入用户程序5返回后做清理调用析构函数,退出程序这也是为什么你即使 main 什么都没写,程序也会有一些输出或行为—— 因为它前面已经走了好多底层逻辑。这是个经典的 C++ 面试问题,问的是在main()函数执行之前,程序运行了哪些内容。步骤内容举例说明1全局/静态对象构造函数A a;全局变量构造2。

zjkyeah的博客 885

[转]main 之前与之后

【转自CLive Studio 百度空间】<br />我之所以提出这个问题,缘于一些IT公司招聘开发人员的笔试题或者面试题:C++ 中能不能让一些代码在 main() 之前或者之后执行?<br />答案理所当然可以的。<br />这可以有很多实现方法。下面例举:<br />1、一般来说,全局域的变量(包括静态变量)赋值、初始化等工作都是在main之前执行的。此时初始化变量调用的普通赋值函数,初始化对象调用的类的构造函数,都是行之有效的方法。<br />比较典型的是静态变量通过静态函数赋值、静态对象的初始化,

Faith Seeker 971

如何在main函数之前调用其他函数 ?

将要执行的代码写到类的构造函数种,并定义全局变量 在windows平台中,执行main函数之前,系统会执行一段CRTstartup代码,对系统的堆栈、全局变量、命令行参数、环境变量等进行初始化操作。我们利用对全局变量的初始化机制来让构造函数中的代码优先在main函数之前执行。 #include<iostream> #include<Windows.h> using namespace std; class Debug{ public: Debug() { ..

qq_42021840的博客 3072

main函数之前后

main函数之前后main 函数之前后编译过程符号分析分析 Glibc 的入口函数总结 欢迎大家访问我的个人博客 http://blog.wuzhenyu.com.cn main 函数之前后 初学编程的人都知道,程序是从main函数开始执行的,那么在main函数执行之前和执行之后,程序到底做了些什么呢,比如全局变量是在什么时候执行的呢,我们在动态申请堆内存的时候使用malloc就可以了,那么堆...

猫步旅人- 程序员的旅途 1576

没有了 main 函数,程序还能跑吗?

文章目录刑天代码编译运行探索疑问指定 刑天 刑天,是中国远古神话传说人物,手使一柄巨斧和盾牌,身强力壮,体型巨大的上古巨人,炎帝手下大将,和黄帝争位,被斩去头颅,失了首级后,以双乳为眼,肚脐为口,再战黄帝。 刑天没有了头仍然可以战斗,程序没有了 main 函数,还能跑吗? 答案是:可以的。 代码 nomain.c #include <stdio.h> #include <stdlib.h> void nomain() { printf("hello world\n

lyndon 1万+

如何在main函数之前和之后执行代码

如何在main函数之前和之后执行代码

凡辰道 1971

JavaWeb项目没有main怎么跑

JavaWeb项目没有main怎么跑 写了这么多的servlet,突然发现,好像找不到程序的入口?(比如main()???) main()在Tomcat里 首先必须确认,main()是存在的 在哪里呢?在我们部署的Tomcat容器中 main()具体在Tomcat的BootStrap类里面,web应用启动是不会执行类中的main方法的,因为只会调用Tomcat的main,然后通过web.xml的配置去加载其它类,我们平时写的main(),只是用来测试用的 Tomcat也是个Java程序 Java程序跑起来,

qizong007的博客 7124
上一篇: 小问题有大智慧-代理服务器的监测
下一篇: 函数指针的值不是函数地址?
招RD和QA
博客等级 码龄26年 40粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值