69,369
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
#include "fun.h"
int a;
int main(void)
{
fun();
printf("[main] &a = %p\n", &a);
printf("[main] a = 0x%X\n", a);
}
#include <stdio.h>
#include "fun.h"
int a;
void fun(void)
{
a = 0xff;
printf("[fun] &a = %p\n", &a);
printf("[fun] a = 0x%X\n", a);
}
#ifndef _FUN__H
#define _FUN__H
void fun(void);
#endif
#include <stdio.h>
#include "fun.h"
int a;
int main(void)
{
printf("[main] &a = %p\n", &a);
fun();
printf("[main] &a = %p\n", &a);
printf("[main] a = 0x%X\n", a);
}
结果:
[main] &a = 0x804a01c
[fun1] &a = 0x804a01c
[fun1] a = 0xFF
[main] &a = 0x804a01c
[main] a = 0xFF
第一条printf的&a是有地址的啊?
gcc -Wredundant-decls -o main main.c fun.c