小编Roc*_*k26的帖子

宏中的宏在C中

请帮我解决这个问题.这是在C中获取行号,文件名和var args的示例代码.当我尝试运行它时,我遇到了一些错误.我相信有很多方法可以做到这一点.但我必须使用现有代码来实现某些功能.任何帮助或建议将不胜感激.

#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>

#define MY_MACRO1(fmt, args...)                \
 {                                             \
   char buf_d[1024];                       \
   MY_MACRO2(__FILE__, __LINE__,call_func(buf_d,sizeof(buf_d),fmt,##args));   \
 }   

#define MY_MACRO2(__FILE__, __LINE__,fmt, ...)  printf("%s : %d -> %s : \n",__FILE__, __LINE__, __VA_ARGS__);

char * call_func(char *buf_t, size_t size, const char *fmt, ...)
{
  va_list ap;
  va_start(ap,fmt);
  vsnprintf(buf_t, size, fmt, ap);
  va_end(ap);
  return buf_t;
}


int main()
{
  printf("\n Now I am printintg macro....\n");
  MY_MACRO1("Macro is working fine..\n");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

请找宏扩展.缺少宏(func返回值)中的最后一个参数.

char buf_d[1024];
printf("%s : %d -> …
Run Code Online (Sandbox Code Playgroud)

c macros function

6
推荐指数
1
解决办法
247
查看次数

在bash脚本中将数组输出存储到逗号分隔列表

我已经从用户输入数组.但我需要将它们用作逗号分隔列表.我怎样才能做到这一点?在我的情况下输入是路径(/ usr/tmp /).感谢您的帮助和时间.谢谢 !

例:

read "Number of subdirectories : " count
for i in $(seq 1 $count)
do
    read -e -p " Subdir : $i: " arr[$i]
done
Run Code Online (Sandbox Code Playgroud)

预期结果:

$var = {arr[1],arr[2],arr[3],......}
Run Code Online (Sandbox Code Playgroud)

bash shell scripting .bash-profile

3
推荐指数
1
解决办法
4879
查看次数

标签 统计

.bash-profile ×1

bash ×1

c ×1

function ×1

macros ×1

scripting ×1

shell ×1