结构体操作
我在编写android NDK需要测试下调用C的结构体,但是C基本不懂,谁能给我完善下下面简单的文件,C语言的。
我写了一个头文件:
typedef struct {
unsigned char ch;
unsigned long data;
unsigned char pp[3];
} EMV_TEST;就一个结构里,包含3中类型。#include "demo.h"这C里不知道怎么操作,我想实现在setEMV函数里给结构体每个属性赋值。
void setEMV(EMV_TEST *emvT) {
void getEMV(EMVTEST *emvT) {
}
void main(){
}
void EMVLIB_GetParameter(EMV_PARAM* stParam)
{
stParam.ch = 'S';
stParam.data = 6502L;
strcpy(et.stParam, "HS");
}
EMV_PARAM st;
EMVLIB_GetParameter(&st);
如果是给结构体里的char[]赋值,EMV_AppList ea;
strcpy(ea.AppName, appName);
strcpy(ea.AID,aid);
appName是一个string,这样写对吗?
谢谢,这个我理解了,我也不想封装那些,只是我android实际开发中需要用到那种场景。
不用封装,直接访问即可:
#include <string.h>
#include <stdio.h>
typedef struct
{
unsigned char ch;
unsigned long data;
unsigned char pp[3];
}EMV_TEST;
int main(void)
{
EMV_TEST et;
et.ch = 'S';
et.data = 6502L;
strcpy(et.pp, "HS");
printf("%c\n", et.ch);
printf("%ld\n", et.data);
printf("%s\n", et.pp);
return 0;
}
例如我有这么一个函数void EMVLIB_GetParameter(EMV_PARAM *stParam)
我这个函数可以获取EMV_PARAM 这个结构体结果。我需要获取里面的每一个属性值怎么写?
可是这里返回的是一个指针吧?
指针的时候 直接用->操作符替换.就行了
例如:stParam->ch; stParam->data; st->pp;就可以了EMV_PARAM st;
EMVLIB_GetParameter(&st);
我EMVLIB_GetParameter这个函数原型是void EMVLIB_GetParameter(EMV_PARAM *stParam)
需要的参数是指针。给结构体加一个"&"就是指针了吗?
继续请问一下
一样的,直接这样即可:
void EMVLIB_GetParameter(EMV_PARAM* stParam)
{
stParam.ch = 'S';
stParam.data = 6502L;
strcpy(et.stParam, "HS");
}
调用时,
EMV_PARAM st;
EMVLIB_GetParameter(&st);谢谢,这个我理解了,我也不想封装那些,只是我android实际开发中需要用到那种场景。
不用封装,直接访问即可:
#include <string.h>
#include <stdio.h>
typedef struct
{
unsigned char ch;
unsigned long data;
unsigned char pp[3];
}EMV_TEST;
int main(void)
{
EMV_TEST et;
et.ch = 'S';
et.data = 6502L;
strcpy(et.pp, "HS");
printf("%c\n", et.ch);
printf("%ld\n", et.data);
printf("%s\n", et.pp);
return 0;
}
例如我有这么一个函数void EMVLIB_GetParameter(EMV_PARAM *stParam)
我这个函数可以获取EMV_PARAM 这个结构体结果。我需要获取里面的每一个属性值怎么写?
可是这里返回的是一个指针吧?EMV_PARAM st;我EMVLIB_GetParameter这个函数原型是
EMVLIB_GetParameter(&st);void EMVLIB_GetParameter(EMV_PARAM *stParam)需要的参数是指针。给结构体加一个"&"就是指针了吗?