当前位置:网站首页>L'utilisation de C language 0 length Array
L'utilisation de C language 0 length Array
2022-06-27 11:06:00 【Fhqlongteng】
1、0Tableau de longueur
0Longueur du tableau signifie que la longueur du tableau est0,Par exemple,int a[0],Il ne prend pas d'espace mémoire après la compilation,C'est - à - dire:sizeof(a) = 0.
C99Le règlement peut êtreTableau de longueur variable int len ; int array[len];C'est - à - dire que le tableau est la taille du tableau spécifiée au moment de l'exécution du programme.Il est courant d'initialiser les données d'entrée.
GCCPrise en charge directe des tableaux de longueur nulle,int a[0];Un tableau de longueur zéro a une caractéristique qui n'utilise pas d'espace mémoire.0Les tableaux de longueur sont rarement utilisés seuls,Généralement utilisé dans les structures,Ne pas occuper la longueur de la structure,Utilisé lors de l'allocation de la mémoire continue.
2、0Utilisation de tableaux de longueur dans les structures
0.Les tableaux de longueur sont souvent utilisés dans les structures,Le code suivant est une structure avec0Tableau de longueur.Cette structuresizeof(struct rndis_query_msg) = 7Un mot=28Longueur des octets,OIDInputBuffer[0] Espace inoccupé dans la structure .
/* Remote NDIS Query Message */
struct rndis_query_msg
{
rt_uint32_t MessageType;
rt_uint32_t MessageLength;
rt_uint32_t RequestId;
rt_uint32_t Oid;
rt_uint32_t InformationBufferLength;
rt_uint32_t InformationBufferOffset;
rt_uint32_t Reserved;
rt_uint8_t OIDInputBuffer[0];
};
typedef struct rndis_query_msg* rndis_query_msg_t;
OIDInputBuffer Utilisé principalement pour accéder aux variables des membres du tissu lors de l'allocation de mémoire Reserved Utilisation continue de la mémoire . Comme demander un struct rndis_query_msg Espace mémoire occupé par la structure ,EtOIDInputBuffer La mémoire pointée a 10 L'espace en octets peut être utilisé . Le Code peut être écrit comme suit .
rndis_query_msg_t prndis = NULL;
prndis = malloc(sizeof(struct rndis_query_msg) + 10);
if(prndis)
{
for(i = 0; i < 10; i++)
{
prndis->OIDInputBufferp[i] = i;
}
}
/* Si cet article vous aide ,Donnez - moi du thé--Ajoutez - moivx:longtengweixin*/
3、Compilateurs pris en charge
0 Le tableau de longueur est écrit dans IARCompilateur,GCC Prise en charge dans le compilateur .Mais danskeil Le compilateur par défaut n'est pas pris en charge ,Même ouvertC99 Et le réglage de .keil Le logiciel doit être ajouté aux options de compilation --gcc Pour prendre en charge la compilation .
边栏推荐
- 直播电子商务应用程序开发需要什么基本功能?未来发展前景如何?
- How to deploy jupyterlab in methodot?
- 【TcaplusDB知识库】TcaplusDB运维单据介绍
- 【TcaplusDB知识库】TcaplusDB单据受理-事务执行介绍
- Naacl 2022 | TAMT: search the transportable Bert subnet through downstream task independent mask training
- Openpyxl table reading instance
- Co jump
- Feedforward feedback control system design (process control course design matlab/simulink)
- Istio related information
- Eureka核心源码解析
猜你喜欢
[tcapulusdb knowledge base] Introduction to tmonitor stand-alone installation guidelines (I)
Microsoft cloud technology overview
Leetcode 729. My schedule I (awesome, solved)
【TcaplusDB知识库】TcaplusDB单据受理-建表审批介绍
“全班29人24人成功读研”冲上热搜!剩下的5个人去哪了?
How to deploy jupyterlab in methodot?
面试突击60:什么情况会导致 MySQL 索引失效?
21: Chapter 3: develop pass service: 4: further improve [send SMS, interface]; (in [send SMS, interface], call Alibaba cloud SMS service and redis service; a design idea: basecontroller;)
Codeforces Round #786 (Div. 3) ABCDE
在外企远程办公是什么体验? | 社区征文
随机推荐
Array object in JS
[tcapulusdb knowledge base] Introduction to tmonitor stand-alone installation guidelines (II)
红包雨: Redis 和 Lua 的奇妙邂逅
KDD 2022 | 基于分层图扩散学习的癫痫波预测
Future & CompletionService
堆-堆排序-TopK
【TcaplusDB知识库】TcaplusDB集群管理介绍
Glide caching mechanism
杰理之DAC输出方式设置【篇】
[tcapulusdb knowledge base] Introduction to tcapulusdb table data caching
go-zero微服务实战系列(七、请求量这么高该如何优化)
居家办公竟比去公司上班还累? | 社区征文
Eureka core source code analysis
21: Chapter 3: develop pass service: 4: further improve [send SMS, interface]; (in [send SMS, interface], call Alibaba cloud SMS service and redis service; a design idea: basecontroller;)
【TcaplusDB知识库】TcaplusDB-tcaplusadmin工具介绍
Co jump
杰理之IO 口中断使用注意事项【篇】
Code for structural design of proe/creo household appliances - electric frying pan
ECMAScript 6(es6)
【TcaplusDB知识库】TcaplusDB单据受理-事务执行介绍