如何把字符串转化成字符数组并赋值?

foobar2016 2013-02-07 05:42:23
大家好,

请问比如我有一个字符串,

#define ADDRESS(ownDu)					\
((ownDu == 1) ? (0x12:0x15:0x25:0x26) : \
(ownDu == 2) ? (0x12:0x16:0x25:0x26) : (0x12:0x20:0x25:0x26))

int macAddress[4];


请问如何把ADDRESS的值赋值给macAddress? 比如 如果是ADDRESS(1), 那么
macAddress[0] = 0x12,
macAddress[1] = 0x15,
macAddress[2] = 0x25,
macAddress[3] = 0x26?
...全文
230 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
25K纯帅 2013-02-09
实在很认真的看不懂!
  • 打赏
  • 举报
回复
derekrose 2013-02-08
弱弱的问一句为什么要用宏
  • 打赏
  • 举报
回复
foobar2016 2013-02-08
#define ADDRESS(ownDu) do{ 这个do哪里来的?
  • 打赏
  • 举报
回复
getmonyinfo 2013-02-08
引用 5 楼 foobar2016 的回复:
#define ADDRESS(ownDu) do{ 这个do哪里来的?
在宏中用do while算是一种技巧吧, 可以包含多条语句。
  • 打赏
  • 举报
回复
getmonyinfo 2013-02-07
这排版怎么这么难看呢。
  • 打赏
  • 举报
回复
getmonyinfo 2013-02-07
宏一般用于程序中的文本替换

#define arr_capacity  4
static int macAddress[arr_capacity];
#define ADDRESS(ownDu) do{	\
	if (ownDu == 1)	\
   	{				\
		int arr[arr_capacity] = {0x12,0x15,0x25,0x26};	\
		memcpy (macAddress, arr, arr_capacity * (sizeof(arr[0])));			\
   	} \
	else if (ownDu == 2)	\
	{						\
		...					\
	}						\
	else if ()				\
	{						\
		...					\
	}						\
}while (0)

个人感觉写个函数的形式更好
  • 打赏
  • 举报
回复
AnYidan 2013-02-07
引用 1 楼 zhaokai115 的回复:
C++有这种语法吗?我孤陋寡闻了 。(0x12:0x15:0x25:0x26)
ip adress吗? 用 char *
  • 打赏
  • 举报
回复
zhaokai115 2013-02-07
C++有这种语法吗?我孤陋寡闻了 。(0x12:0x15:0x25:0x26)
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2013-02-07 05:42
社区公告
暂无公告