社区
C语言
帖子详情
帮忙分析下面程序
zzy301
2011-01-12 02:06:59
#define REG32 __IO volatile unsigned long
#define INPORT32(port) ((*(REG32 *)(port)))
这里__IO是什么目的?
REG32 * 是将指针指向的数据转换成REG32类型的意思吗?
谢谢!
...全文
124
3
打赏
收藏
帮忙分析下面程序
#define REG32 __IO volatile unsigned long #define INPORT32(port) ((*(REG32 *)(port))) 这里__IO是什么目的? REG32 * 是将指针指向的数据转换成REG32类型的意思吗? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gladstonejay
2011-01-12
打赏
举报
回复
[Quote=引用 2 楼 ganpengjin1 的回复:]
引用楼主 zzy301 的回复:
#define REG32 __IO volatile unsigned long
#define INPORT32(port) ((*(REG32 *)(port)))
这里__IO是什么目的?
REG32 * 是将指针指向的数据转换成REG32类型的意思吗?
谢谢!
是把地址为port用REG32 *转化,外面的* 表示取值
[/Quote]
受教
漫步者、
2011-01-12
打赏
举报
回复
[Quote=引用楼主 zzy301 的回复:]
#define REG32 __IO volatile unsigned long
#define INPORT32(port) ((*(REG32 *)(port)))
这里__IO是什么目的?
REG32 * 是将指针指向的数据转换成REG32类型的意思吗?
谢谢!
[/Quote]是把地址为port用REG32 *转化,外面的* 表示取值
gauldoth
2011-01-12
打赏
举报
回复
port是一个地址。
INPORT32(port),得到port地址开始的第一个unsigned long值。
volatile表示这个变量可能被操作系统,硬件,或者并行线程改变。
这样编译器生成的结果代码每次访问该变量都会重新到变量地址处取值。
__IO就不知了,不过port应该是啥硬件端口吧?
分析
下面
的
程序
分析
下面
的
程序
: #include<stdio.h> int main() { char c1, c2; c1 = 97; c2 = 98; printf("c1=%c, c2=%c\n", c1, c2); printf("c1=%d, c2=%d\n", c1, c2); return 0; } (1)运行时会输出什么信息?为什么? 答:会输出 : c1=97, c2=98 因为第一行十一字符形式输出,所以会吧
3-
分析
下面
程序
分析
下面
的
程序
: int main() { char c1; char c2; c1=97; c2=98; printf(“c1= %c,c2=%c\n”,c1 ,c2); printf(“c1 =%d,c2=%d\n”, c1 ,c2); return 0; } (1) 运行时会输出什么信息?为什么? (2) 如果将
程序
第 3、4 行改为 c1=197; c2= 198 ; 运行时会输出什么信息?为什么? (3) 如果将
程序
第 1、2 行改为 int c1, int c2; 运行时会输出什么信息?为什么?
分析
下面
程序
...
#includemain(int argc,char *argv[]){ int j;printf(“%d/n”,argc);for(j=0;j printf(“%s”,argv[j]);printf(“/n”);}若该
程序
编译。连接生产C盘根目录下可执行文件test.exe,则在C盘根目录下输入以下命令行:test file1.c file2.c (其中表示回车)
程序
的执行结果是
7.1
分析
并写出
下面
程序
的运行结果
#include
//#include
int square(int i) { return i*i; } int main() { int i=0; i=square (i); for (;i<3;i++) { static int i=1; i+=square (i);
算法
分析
课设(二)阅读
下面
的
程序
,按要求回答
下面
的问题
#include<stdio.h> #include<stdlib.h> #include<string.h> int n,max,min,sum; int num[10][10]; // 原题的输入参数是m,这里为了方便观察,改成了k void move(int k) { int a,i; a=num[k][n]; for(i=n-1;i>=1;i--){ num[k][i+1]=num[k][i]; } num[k][1]=a; } v...
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章