C中的const char*有问题

C中的const char*有问题,c,casting,C,Casting,我基本上是想和你在一起 struct timeval tv = { }; gettimeofday(&tv, NULL); 它是有效的。问题是,将接受time作为参数的函数的类型是const char* 所以我做了 const char *time; time = &tv.tv_sec; 问题是,tv.tv_秒属于time_t类型,我需要插入它 const char *time 将其传递给需要const char的函数* 我该怎么做?将整数放入常量字符* 我尝试过一些简单的

我基本上是想和你在一起

struct timeval tv = { };
gettimeofday(&tv, NULL);
它是有效的。问题是,将接受time作为参数的函数的类型是const char*

所以我做了

const char *time;
time = &tv.tv_sec;
问题是,tv.tv_秒属于time_t类型,我需要插入它

const char *time
将其传递给需要const char的函数*

我该怎么做?将整数放入常量字符*
我尝试过一些简单的方法来转换它,但是当你发现自己需要将时间指针转换成字符指针时,我对C

sprintf
snprintf
snprintf
没有太多的经验,这是一个非常错误的提示。你应该再看看这个问题

您不能描述另一个接受常量char*的函数,否则我会更好地了解发生了什么


我怀疑您可能需要将时间整数转换为字符串,并传递指向该字符串开头的指针。要做到这一点,您可能需要使用一个名为strftime的函数。

当您发现自己需要将时间指针强制转换为char指针时,这意味着出现了严重错误。你应该再看看这个问题

您不能描述另一个接受常量char*的函数,否则我会更好地了解发生了什么


我怀疑您可能需要将时间整数转换为字符串,并传递指向该字符串开头的指针。为此,您可能需要使用名为strftime的函数。

要将整数格式化为字符串,您应该使用
snprintf

例如:

char resultString[64];

snprintf(resultString, sizeof(resultString), "Current time : %d", tv.tv_sec);

要将整数格式化为字符串,应使用
snprintf

例如:

char resultString[64];

snprintf(resultString, sizeof(resultString), "Current time : %d", tv.tv_sec);

可直接使用的C函数有:

  • (输入类型为
    时间
  • (输入类型为
    struct tm
如果需要控制格式,请使用:

  • (输入类型为
    struct tm

链接页面包含使用示例。必须预先分配字符串。

可直接使用的C函数有:

  • (输入类型为
    时间
  • (输入类型为
    struct tm
如果需要控制格式,请使用:

  • (输入类型为
    struct tm

链接页面包含使用示例。字符串必须预先分配。

您的意思是要将该
时间\u t
转换为字符串,然后将该字符串发送给接受字符串作为参数的函数?您必须将秒(整数)转换为字符串,并传递该字符串。您的意思是要将该
时间\u t
转换为字符串,然后将字符串发送到接受字符串作为参数的函数?您必须将秒(是整数)转换为字符串,并传递它。是的,我得到了db mysql.c:144:2:警告:传递'snprintf'的参数1将从整数生成指针,而不使用cast/usr/include/bits/stdio2.h:62:1:注意:应为'char*restrict',但参数的类型为'char'db mysql.c:144:2:警告:格式'%d'应为'int',但是参数4的类型为“\uuu time\u t”db mysql.c:144:2:警告:格式“%d”要求类型为“int”,但参数4的类型为“\uu time\u t”,这基本上是常量char timee;常量字符*计时器;`gettimeofday(&tv,NULL);snprintf(timee,sizeof(timee),“%d”,tv.tv_秒);定时器=&timee;是的,我得到了db mysql。c:144:2:警告:传递'snprintf'的参数1将从整数生成指针,而不使用cast/usr/include/bits/stdio2。h:62:1:注意:应为'char*restrict',但参数的类型为'char'db mysql。c:144:2:警告:格式'%d'应为'int',但是参数4的类型为“\uuu time\u t”db mysql.c:144:2:警告:格式“%d”要求类型为“int”,但参数4的类型为“\uu time\u t”,这基本上是常量char timee;常量字符*计时器;`gettimeofday(&tv,NULL);snprintf(timee,sizeof(timee),“%d”,tv.tv_秒);定时器=&timee;