C++中,如何判断Server端返回的response的值是不是为空,如有2个response,那么如何判断response[0]的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中,如何判断Server端返回的response的值是不是为空,如有2个response,那么如何判断response[0]的值相关的知识,希望对你有一定的参考价值。
参考技术A 先判断接收的数据大小len/sizeof(response的类型)可以得出接收到多少个response数据,再根据大小动态申请内存response = malloc(len),然后memcpy(response, data, len),接下来就可以操作response这个数组了。追问呃,这个没有错,我想问的是,已知有2个response返回的情况下,而假定response[0]的内容是空的,什么也没有,怎么做判断,从而用来做异常处理用。也就是您以上提到的data不存在的情况。
追答已知有2个response,那么就拿len的大小跟sizeof(response的类型)*2做对比不就可以了吗?
参考技术B client端 recv()函数 如果跑进来了,查看获取的 len是否为 0;C++之如何判断大端小端
今天在浏览面经,发现如今的面试已经不仅仅满足于问细节了,而是要求说出思路细节并且要求动手实现。
如何判断大端小端是一道很经典的面试题,通常面试的回答就是通过union的特性来判断,今天,我们就来实现一下。
什么是大端小端
所谓的大端小端就是数据对齐的端模式,也就是计算机中采用的两种常用的字节存储机制,与CPU相关。
举个例子:
0x123456在内存中是怎么存储的呢?
大端模式
低地址---------->高地址
0x12 | 0x34 | 0x56
小端模式
低地址---------->高地址
0x56 | 0x34 | 0x12
如何判断大端小端
方法一 强制类型转换
bool isBigEndian()
{
short a=0x1234;
char b=*(char *)&a;
if(0x12==b) return true;
return false;
}
方法二 利用联合体
bool isBigEndian()
{
union NUM
{
short a;
char b;
}num;
num.a=0x1234;
if(0x12==num.b) return true;
return false;
}
以上是关于C++中,如何判断Server端返回的response的值是不是为空,如有2个response,那么如何判断response[0]的值的主要内容,如果未能解决你的问题,请参考以下文章