<转> 求结构体偏移

此宏很神奇

#define FIND(structTest,e) (size_t)&(((structTest*)0)->e)

 

struct test
{
int a;
int b;
char c;
int d;
};
size_t s = FIND(test,a);
cout<<s<<endl;  //输出结构体偏移

// 获取驱动返回的准确AP数量 int ap_count = l_bss_table.bss_info->count; // 计算总内存需 = 结构头 + AP列表 size_t required_size = sizeof(wl_scan_results_t) + ap_count * sizeof(wl_bss_info_v109_t); 通过这种方法分配的共享内存为什么能获取全部数据 打印传入的数据 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=0, SSID=727test2,RSSI =-55 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=1, SSID=727test4,RSSI =-56 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=2, SSID=727test5,RSSI =-56 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=3, SSID=727test6,RSSI =-55 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=4, SSID=727test7,RSSI =-55 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=5, SSID=TP-Link_2.4GHz_B0471E,RSSI =-68 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=6, SSID=Omada_2.4GHz_2ADA94,RSSI =-41 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=7, SSID=ss2-ppsk,RSSI =-48 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=8, SSID=EAP653_2.4G,RSSI =-38 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=9, SSID=!EAP653_TEST_@100,RSSI =-38 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=10, SSID=ux7_2g,RSSI =-52 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=11, SSID=TP-LINK_A4942C_OvO,RSSI =-60 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=12, SSID=awdawdawd,RSSI =-43 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=13, SSID=ss-test-11r,RSSI =-49 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=14, SSID=ss2-ppsk,RSSI =-49 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=15, SSID=ss_test_2,RSSI =-50 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=16, SSID=fffffff,RSSI =-54 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=17, SSID=1,RSSI =-53 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=18, SSID=2,RSSI =-54 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=19, SSID=Omada_2.4GHz_116535,RSSI =-47 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=20, SSID=如此生活30年,RSSI =-67 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=21, SSID=if_110,RSSI =-67 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=22, SSID=Unconfigured SSID 3,RSSI =-77 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=23, SSID=if_120,RSSI =-67 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=24, SSID=tplink-hyx,RSSI =-59 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=25, SSID=RE550-V3-2G,RSSI =-56 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=26, SSID=727test7,RSSI =-63 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=27, SSID=1234321,RSSI =-53 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=28, SSID=TP-Link_2.4GHz_000B44,RSSI =-69 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=29, SSID=Unconfigured SSID 12,RSSI =-78 <scanmanager>[DEBUG][api_wlan_manager_get_scan_result:242]AP=30, SSID=1212,RSSI =-40 打印接收的数据 <apscan>[DEBUG][api_wlan_apscan_setScan:657]msg recv successs. scanResults->count=31 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=0, SSID=727test2, RSSI=-55 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=1, SSID=727test4, RSSI=-56 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=2, SSID=727test5, RSSI=-56 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=3, SSID=727test6, RSSI=-55 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=4, SSID=727test7, RSSI=-55 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=5, SSID=TP-Link_2.4GHz_B0471E, RSSI=-68 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=6, SSID=Omada_2.4GHz_2ADA94, RSSI=-41 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=7, SSID=ss2-ppsk, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=8, SSID=, RSSI=0 <scanmanager>[DEBUG][api_wlan_manager_scan:113]start ap scan! <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=9, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=10, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=11, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=12, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=13, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=14, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=15, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=16, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=17, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=18, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=19, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=20, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=21, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=22, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=23, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=24, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=25, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=26, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=27, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=28, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=29, SSID=, RSSI=0 <apscan>[DEBUG][api_wlan_apscan_setScan:692]AP=30, SSID=, RSSI=0 根据之前的代码分析出现这种问题的原因,为什么只能接收到前面的数据
最新发布
11-07
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值