小编Kev*_*ong的帖子

如何编写一个可以处理C中多个参数的函数声明?

如何编写一个可以处理多个参数的函数声明 printf()

换句话说,我可以通过多种方式调用该函数

  • Func(Var,12,False);

  • 或Func(Var,12,14,False);

  • 或Func(Var1,Var2,12,14,False);

  • 等等

怎么做?谢谢.

c

2
推荐指数
1
解决办法
127
查看次数

如何在C中"读取"MBR(主引导记录)?

我只想编写一个程序来分析C中的MBR.

我已经知道一些方法可以通过Windows上的API或Linux上的命令来读取它.

但是,我可以在没有任何平台相关限制的情况下在C中完成吗?

如果我不能,有什么理由吗?

c mbr

2
推荐指数
2
解决办法
1万
查看次数

我可以通过返回构造函数直接返回一个对象吗?

class time
{
    public:
    time(int i, int j, int k)
    {
        hour = i, minute = j, second = k;
    }

    private:
    int hour, minute, second;
}

time return_an_object_1 (void)
{
    return time(1, 30, 59);  // Using parentheses
}

time return_an_object_2 (void)
{
    return time{1, 30, 59};  // Using curly bracket
}
Run Code Online (Sandbox Code Playgroud)

两者都可以成功编译,但有什么区别?

c++ c++11

2
推荐指数
1
解决办法
117
查看次数

如何在STM32上获取时间间隔?

我想测量单个函数对STM32的持续时间.我唯一能找到的是SysTick_Handler.但是,这是一个周期性的中断,但我需要的是获取时间间隔,如:

long t1 = mcu_clock();
sleep(20);
long t2 = mcu_clock();
long diff = (t2 - t1);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了C clock(),但它没有用,总是返回-1.我该怎么做?

time stm32 microprocessors

2
推荐指数
1
解决办法
2298
查看次数

无法在控制台中隐藏光标?

int main (void) 
{
 //Get a console handle
 HWND myconsole = GetConsoleWindow();

 struct CONSOLE_CURSOR_INFO
 {
  DWORD dwSize;
  BOOL bVisible;
 };
 struct CONSOLE_CURSOR_INFO CURSOR;

 CURSOR.bVisible = FALSE;
 SetConsoleCursorInfo(myconsole, CURSOR);
}
Run Code Online (Sandbox Code Playgroud)

我想在控制台中隐藏光标,但失败了。

此处列出了 GCC-mingw32 报告的内容:

error: request for member 'bVisible' in something not a structure or union
error: incompatible type for argument 2 of 'SetConsoleCursorInfo'
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我吗?

谢谢。

c winapi mingw32

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

哪个是退出控制台,"FreeConsole(void)","return 0"或"exit(EXIT_SUCCESS)"的更好选择?

我知道returnvsexit()之间的区别.
我想知道它们有什么不同FreeConsole().

  1. FreeConsole() 是一个API函数

  2. (scope: main function) return 是C中的陈述.

  3. exit (EXIT_SUCCESS) 是一个函数调用.

您想在C中使用哪个退出程序?为什么?

c c++ winapi function mingw32

1
推荐指数
2
解决办法
1376
查看次数

在C中使用varargs

是一个例子varargs.

我有点困惑.

[x]问题1:如何获得第n 论点?

va_list ap;
va_arg (ap + (n-1), int); // **INCORRECT USAGE**
Run Code Online (Sandbox Code Playgroud)

这是对的吗?如果没有,如何获得第n 参数?

[x]问题2:什么时候会ap增加?

它说 ap将增加到下一个论点,但如果我使用va_arg(ap + (n-1), int), n>=2,会ap增加吗?

问题3:(BTW /可能是偏离主题的)什么是缩写?

有时,我们声明Cnt缩写为CountCounter.

什么ap缩写?

问题4:哪种类型ap

我知道它的va_list类型,但是什么va_list?结构?诠释?或者是其他东西?

谢谢.

c variadic-functions

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

如何在C++中新建和初始化结构?

在C中,我们实际上做到了

struct node *p = (node*)malloc(sizeof(node));   // casting is not necessary
p->a = 0;      // first  element
p->b = NULL;   // second element
Run Code Online (Sandbox Code Playgroud)

动态分配内存中的空格,但我怎么能用C++方式呢?

线下面是正确的猜测吗?

node *p = new node {0, NULL};
Run Code Online (Sandbox Code Playgroud)

c++ struct

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

这也是Ansi C中未定义的行为吗?

如果这样的代码,它必须是未定义的行为.

char *String = "Stack Overflow"; //undefined behavior
Run Code Online (Sandbox Code Playgroud)

出于这个原因,以下还是一个未定义的行为?但是我的大多数参考书都是这样写的!

char *Print (char *String)
{
    return String;
}

int main (void)
{
    printf ("%s", Print("Stack Overflow"));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为了避免编写未定义的行为代码,为什么不这样做呢?

char *Print (char String[16])
{
    return String;
}

int main (void)
{
    printf ("%s", Print("Stack Overflow"));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c ansi undefined-behavior

0
推荐指数
1
解决办法
166
查看次数

"return ret <0"是什么意思?

函数可以返回一个数字,指针和大多数你想要的类型,但它的含义是什么?

return ret < 0;
Run Code Online (Sandbox Code Playgroud)

(此代码段来自代码的最后一行,ffprobe.c.)

c return-value ffprobe

-2
推荐指数
1
解决办法
2639
查看次数