两个结构体变量的赋值
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <math.h>
#include<stdlib.h>
#include <dos.h>
#include <conio.h>
typedef struct __Base_Audio_Device
{
int samplerate;
int bits;
}Base_Audio_Device;
typedef struct __Audio_Module
{
Base_Audio_Device base_audio_device;
int Cards;
}Audio_Module;
static Audio_Module Speaker_Audio_Module =
{
{ 48000,16 },
};
int main()
{
// 用法一:赋值 取值
Base_Audio_Device base_audio_device = Speaker_Audio_Module.base_audio_device;
printf("base_audio_device samplerate is %d\n", base_audio_device.samplerate);
printf("base_audio_device bits is %d\n", base_audio_device.bits);
printf("base_audio_device is %p \n", &base_audio_device);
printf("Speaker_Audio_Module.base_audio_device is %p\n", &(Speaker_Audio_Module.base_audio_device));
printf("-------------------------------------------------\n");
// 不好的地方 两个变量是处于不同地址空间 即使空间内容一样 但是没有什么联系。。。
// 一个文件里面 经常是有要一个本文件的全局变量 操作这个变量
// 解决:方法一:就是使用结构体指针
// 事实上还是两个基本问题(1)值拷贝 (2)地址拷贝的问题 指向的是同一个地址空间
Base_Audio_Device* pbase_audio_device = &Speaker_Audio_Module.base_audio_device;
printf("samprate is %d\n", pbase_audio_device->samplerate);
printf("bits is %d\n", pbase_audio_device->bits);
printf("-------------------------------------------------\n");
while (1);
return 0;
}
一勤天下无难事。

浙公网安备 33010602011771号