相关疑难解决方法(0)

C中的函数指针如何工作?

我最近在C中使用了函数指针.

继续回答你自己的问题的传统,我决定对那些需要快速深入研究这个主题的人进行一些基本的总结.

c function-pointers

1170
推荐指数
10
解决办法
77万
查看次数

`((void(*)())0x1000)();`是什么意思?

这是一个代码,目的是将程序计数器设置为跳转到地址0x1000.我知道它做了什么,但我不明白怎么做.这与我缺乏C语言知识有关.可能你可以赐教.这是声明/功能(我甚至不知道它是什么:))

((void (*)())0x1000)();
Run Code Online (Sandbox Code Playgroud)

我认为它是指向返回void并且不接受任何参数的函数的指针.如果我错了,请纠正我.

c pointers void

39
推荐指数
4
解决办法
3438
查看次数

((void(*)(void))0)()是退出函数?

我试图在Atmel AVR微控制器上编写自己的启动加载程序.我已经从github引用了一个代码库.我要感谢ZEVERO的代码库

在初级阶段,我理解代码库.但是在第224行,我发现了一行 参考代码

**if (pgm_read_word(0) != 0xFFFF) ((void(*)(void))0)();   //EXIT BOOTLOADER**
Run Code Online (Sandbox Code Playgroud)

我理解if条件部分,但是当我试图理解真正的陈述部分时,即

**((void(*)(void))0)();**

代码编写者给出的解释是 // EXIT BOOTLOADER

我的第一个问题是这个复杂宣言的含义是什么 **((void(*)(void))0)();**

第二个问题是,它是否退出微控制器中代码的执行.

c avr atmel bootloader

0
推荐指数
2
解决办法
569
查看次数

标签 统计

c ×3

atmel ×1

avr ×1

bootloader ×1

function-pointers ×1

pointers ×1

void ×1