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;