test_sizeof
test_sizeof
//结论:
//
sizeof(arrU8)得到的大小是u8类型数组的 **定义大小**,在 初始化的时候用 //
strlen(arrU8)得到的大小是u8类型数组的 **实际大小**,在 复制的时候用 //sizeof((char*)arrU8),把一个u8 * 转成 char *,在32位机器上结果是4,64位机器上是8
//sizeof((char*)arrU8)是输出一个指针的大小
//要打印u8类型的数组,直接arrU8就可以了,不用加(char*);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>typedef unsigned char u8;int main(void)
{u8 arrU8[12] = {0};printf("printf arrU8[12] by arrU8 = %s\n", arrU8);//printf arrU8[12] by arrU8 = printf("printf arrU8[12] by (char*)arrU8=%s\n", (char*)arrU8);//printf arrU8[12] by (char*)arrU8=printf("sizeof(arrU8)=%d\n", sizeof(arrU8));//sizeof(arrU8)=12printf("sizeof((char*)arrU8)=%d\n", sizeof((char*)arrU8));//sizeof((char*)arrU8)=8printf("strlen(arrU8)=%d\n", strlen(arrU8));//strlen(arrU8)=0printf("strlen((char*)arrU8)=%d\n", strlen((char*)arrU8));//strlen((char*)arrU8)=0memcpy(arrU8, "123456789", 9);printf("---------------------------------------------\n");printf("printf arrU8[12] by arrU8 = %s\n", arrU8);//printf arrU8[12] by arrU8 = 123456789printf("printf arrU8[12] by (char*)arrU8=%s\n", (char*)arrU8);//printf arrU8[12] by (char*)arrU8=123456789printf("sizeof(arrU8)=%d\n", sizeof(arrU8));//sizeof(arrU8)=12printf("sizeof((char*)arrU8)=%d\n", sizeof((char*)arrU8));//sizeof((char*)arrU8)=8printf("strlen(arrU8)=%d\n", strlen(arrU8));//strlen(arrU8)=9printf("strlen((char*)arrU8)=%d\n", strlen((char*)arrU8));//strlen((char*)arrU8)=9//结论://sizeof(arrU8)得到的大小是u8类型数组的定义大小//strlen(arrU8)得到的大小是u8类型数组的实际大小//sizeof((char*)arrU8),把一个u8 * 转成 char *,在32位机器上结果是4,64位机器上是8//sizeof((char*)arrU8)是输出一个指针的大小//要打印u8类型的数组,直接arrU8就可以了,不用加(char*);printf("---------------------------------------------\n");char arrCh[12] = {0};printf("printf arrCh[12] by arrCh = %s\n", arrCh);//printf arrCh[12] by arrCh = printf("printf arrCh[12] by (char*)arrCh=%s\n", (char*)arrCh);//printf arrCh[12] by (char*)arrCh=printf("sizeof(arrCh)=%d\n", sizeof(arrCh));//sizeof(arrCh)=12printf("sizeof((char*)arrCh)=%d\n", sizeof((char*)arrCh));//sizeof((char*)arrCh)=8printf("strlen(arrCh)=%d\n", strlen(arrCh));//strlen(arrCh)=0printf("strlen((char*)arrCh)=%d\n", strlen((char*)arrCh));//strlen((char*)arrCh)=0memcpy(arrCh, "987", 3);printf("---------------------------------------------\n");printf("printf arrCh[12] by arrCh = %s\n", arrCh);//printf arrCh[12] by arrCh = 123456789printf("printf arrCh[12] by (char*)arrCh=%s\n", (char*)arrCh);//printf arrCh[12] by (char*)arrCh=123456789printf("sizeof(arrCh)=%d\n", sizeof(arrCh));//sizeof(arrCh)=12printf("sizeof((char*)arrCh)=%d\n", sizeof((char*)arrCh));//sizeof((char*)arrCh)=8printf("strlen(arrCh)=%d\n", strlen(arrCh));//strlen(arrCh)=9printf("strlen((char*)arrCh)=%d\n", strlen((char*)arrCh));//strlen((char*)arrCh)=9printf("---------------------------------------------\n");printf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));memset(arrU8, 0, sizeof(arrU8));//初始化的时候用sizeofmemcpy(arrU8, arrCh, strlen(arrCh));//复制的时候strlenprintf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));printf("---------------------------------------------\n");printf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));memset(arrU8, 0, sizeof(arrU8));memcpy(arrU8, "54321", 5);printf("arrU8=%s strlen(arrU8)=%d\n", arrU8, strlen(arrU8));printf("---------------------------------------------\n");printf("arrCh=%s strlen(arrCh)=%d\n", arrCh, strlen(arrCh));memset(arrCh, 0, sizeof(arrCh));memcpy(arrCh, arrU8, strlen(arrU8));printf("arrCh=%s strlen(arrCh)=%d\n", arrCh, strlen(arrCh));exit(0);
}
printf arrU8[12] by arrU8 =
printf arrU8[12] by (char*)arrU8=
sizeof(arrU8)=12
sizeof((char*)arrU8)=8
strlen(arrU8)=0
strlen((char*)arrU8)=0
---------------------------------------------
printf arrU8[12] by arrU8 = 123456789
printf arrU8[12] by (char*)arrU8=123456789
sizeof(arrU8)=12
sizeof((char*)arrU8)=8
strlen(arrU8)=9
strlen((char*)arrU8)=9
---------------------------------------------
printf arrCh[12] by arrCh =
printf arrCh[12] by (char*)arrCh=
sizeof(arrCh)=12
sizeof((char*)arrCh)=8
strlen(arrCh)=0
strlen((char*)arrCh)=0
---------------------------------------------
printf arrCh[12] by arrCh = 987
printf arrCh[12] by (char*)arrCh=987
sizeof(arrCh)=12
sizeof((char*)arrCh)=8
strlen(arrCh)=3
strlen((char*)arrCh)=3
---------------------------------------------
arrU8=123456789 strlen(arrU8)=9
arrU8=987 strlen(arrU8)=3
---------------------------------------------
arrU8=987 strlen(arrU8)=3
arrU8=54321 strlen(arrU8)=5
---------------------------------------------
arrCh=987 strlen(arrCh)=3
arrCh=54321 strlen(arrCh)=5相关文章:
test_sizeof
test_sizeof //结论: // sizeof(arrU8)得到的大小是u8类型数组的 **定义大小**,在 初始化的时候用 // strlen(arrU8)得到的大小是u8类型数组的 **实际大小**,在 复制的时候用 //sizeof((char*)arrU8),把一个u8 * 转成 char *&…...
100+ Windows运行命令大全,装B高手必备
操作电脑关闭、重启、注销、休眠的命令细则: 用法: shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]] 没有参数 显示帮助。这与键入 /? 是一样的。…...
iOS 设置图标和upload包时显示错误
右键-show in finder-AppIcon.appiconset-然后替换图片 然后遇到个问题 就是图片不能有alpha [Xcode]应用图标:ERROR ITMS-90717: “Invalid App Store Icon. The App Store Icon in the asset catalog in x… 具体操作:只需确保【AppIcon】图片集中不…...
软件工程的舞台上,《人月神话》的美学纷飞
前言: Hello大家好,我是Dream。 今天给大家分享一本书:《人月神话》——软件工程的经典之作。 《人月神话》是一本具有深远影响力的软件工程著作,无论是软件开发者、管理者还是学习软件工程的人士,都能从中获得宝贵的启…...
C现代方法(第19章)笔记——程序设计
文章目录 第19章 程序设计19.1 模块19.1.1 内聚性与耦合性19.1.2 模块的类型 19.2 信息隐藏19.2.1 栈模块 19.3 抽象数据类型19.3.1 封装19.3.2 不完整类型 19.4 栈抽象数据类型19.4.1 为栈抽象数据类型定义接口19.4.2 用定长数组实现栈抽象数据类型19.4.3 改变栈抽象数据类型中…...
Elasticsearch 作为 GenAI 缓存层
作者:JEFF VESTAL,BAHA AZARMI 探索如何将 Elasticsearch 集成为缓存层,通过降低 token 成本和响应时间来优化生成式 AI 性能,这已通过实际测试和实际实施进行了证明。 随着生成式人工智能 (GenAI) 不断革新从客户服务到数据分析…...
FPGA与STM32_FSMC总线通信实验
FPGA与STM32_FSMC总线通信实验 内部存储器IP核的参数设置创建IP核FPGA代码STM32标准库的程序 STM32F407 上自带 FSMC 控制器,通过 FSMC 总线的地址复用模式实现STM32 与 FPGA 之间的通信,FPGA 内部建立 RAM 块,FPGA 桥接 STM32 和 RAM 块&…...
maven配置自定义下载路径,以及阿里云下载镜像
1.配置文件 <?xml version"1.0" encoding"UTF-8"?> <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org…...
01.单一职责原则
单一职责原则 概述 简单来说就是一个类只描述一件事, 比如我们熟知的 userDao.java 只负责 用户域功能。如果userDao既操作user表又操作order表,这显然不合理。正确的做法是让orderDao.java去操作order表。 对类来说的,一个类应该只负责一项…...
RT-Thread上部署TinyMaix推理框架,使MCU赋予AI能力
概要 当谈到微控制器(MCU)和人工智能(AI)的结合,我们进入了一个激动人心的领域。传统上,AI应用程序需要大型计算机或云服务器的处理能力,但随着技术的发展,现在可以将AI嵌入到微控制器中。这为嵌入式系统、物联网设备、机器人和各种其他应用开启了新的可能性。 MCU A…...
设计模式 -- 策略模式(Strategy Pattern)
策略模式:一种行为型模式,这些设计模式特别关注对象之间的通信。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 介绍 意图:定义一系列的算…...
Spring Boot 集成 ElasticSearch
1 加入依赖 首先创建一个项目,在项目中加入 ES 相关依赖,具体依赖如下所示: <dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.1.0</version&g…...
百度智能云正式上线Python SDK版本并全面开源!
文章目录 1. SDK的优势2. 千帆SDK:快速落地LLM应用3. 如何快速上手千帆SDK3.1 SDK快速启动3.2 SDK进阶指引3.3 通过Langchain接入千帆SDK 4. 开源社区 百度智能云千帆大模型平台再次升级!在原有API基础上,百度智能云正式上线Python SDK&#…...
LeetCode(3)删除有序数组中的重复项【数组/字符串】【简单】
目录 1.题目2.答案3.提交结果截图 链接: 26. 删除有序数组中的重复项 1.题目 给你一个 非严格递增排列 的数组 nums ,请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保…...
前端视角中的微信登录
目录 引入 流程介绍 具体实现 引入 本文主要讲解网站应用中微信登录的具体流程是怎么样的,以及作为前端开发人员在这整个流程中的主要任务是什么。 如果想要实现微信登录的功能,需要开发人员到微信开放平台注册相应的账号,进行注册应用&am…...
Python 中使用 Selenium 隐式等待
selenium 包用于使用 Python 脚本进行自动化和测试。 我们可以使用它来访问网页中的各个元素并使用它们。 该包中有许多方法可用于根据不同属性检索元素。 加载页面时,会动态检索一些元素。 与其他元素相比,这些元素的加载速度可能不同。 Python 中使用…...
GEE:基于 Landsat 计算的 kNDVI 应用 APP
作者:CSDN @ _养乐多_ 本文记录了在Google Earth Engine(GEE)平台中,使用 Landsat 遥感数据计算 kNDVI 的应用 APP 链接,并介绍该 APP 的使用方法和步骤。该APP可以为用户展示 NDVI 和 kNDVI 的遥感影像,进行对比分析。该 APP 在 Google Earth Engine(GEE)平台中实现。…...
Spring 缓存注解
Spring Cache 框架给我们提供了 Cacheable 注解用于缓存方法返回内容。但是 Cacheable 注解不能定义缓存有效期。这样的话在一些需要自定义缓存有效期的场景就不太实用。 按照 Spring Cache 框架给我们提供的 RedisCacheManager 实现,只能在全局设置缓存有效期。这…...
微信小程序前端开发
目录 前言: 1. 框架选择和项目搭建 2. 小程序页面开发 3. 数据通信和接口调用 4. 性能优化和调试技巧 5. 小程序发布和上线 前言: 当谈到微信小程序前端开发时,我们指的是使用微信小程序框架进行开发的一种方式。在本文中,我…...
C# OpenCvSharp DNN HybridNets 同时处理车辆检测、可驾驶区域分割、车道线分割
效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System.Linq; using System.Numerics; using System.Text; using System.Windows.Forms;namespace OpenCvSharp_D…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
