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

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?
...全文
276 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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)

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧