如何编写一个可以处理多个参数的函数声明 printf()
换句话说,我可以通过多种方式调用该函数
Func(Var,12,False);
或Func(Var,12,14,False);
或Func(Var1,Var2,12,14,False);
等等
怎么做?谢谢.
我只想编写一个程序来分析C中的MBR.
我已经知道一些方法可以通过Windows上的API或Linux上的命令来读取它.
但是,我可以在没有任何平台相关限制的情况下在C中完成吗?
如果我不能,有什么理由吗?
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)
两者都可以成功编译,但有什么区别?
我想测量单个函数对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.我该怎么做?
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)
有人可以帮助我吗?
谢谢。
我知道returnvsexit()之间的区别.
我想知道它们有什么不同FreeConsole().
FreeConsole() 是一个API函数
(scope: main function) return 是C中的陈述.
exit (EXIT_SUCCESS) 是一个函数调用.
您想在C中使用哪个退出程序?为什么?
这是一个例子varargs.
我有点困惑.
va_list ap;
va_arg (ap + (n-1), int); // **INCORRECT USAGE**
Run Code Online (Sandbox Code Playgroud)
这是对的吗?如果没有,如何获得第n 个参数?
ap增加?它说 ap将增加到下一个论点,但如果我使用va_arg(ap + (n-1), int), n>=2,会ap增加吗?
有时,我们声明Cnt缩写为Count或Counter.
什么ap缩写?
ap?我知道它的va_list类型,但是什么va_list?结构?诠释?或者是其他东西?
谢谢.
在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) 如果这样的代码,它必须是未定义的行为.
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) 函数可以返回一个数字,指针和大多数你想要的类型,但它的含义是什么?
return ret < 0;
Run Code Online (Sandbox Code Playgroud)
(此代码段来自代码的最后一行,ffprobe.c.)