See in one situation
uint64_t trackuid = 2906622092;
Now I want to pass this value in one function where function argument is const char*
func(const char *uid)
{
printf("uid is %s",uid);
}
This should print
uid is 2906622092
How can I do this?
// length of 2**64 - 1, +1 for nul.
char buff[21];
// copy to buffer
sprintf(buff, "%" PRIu64, trackuid);
// call function
func(buff);
This requires C99, however, my memory says the MS compiler doesn't have PRIu64
. (PRIu64
is in inttypes.h
.) YMMV.
Use snprintf
to convert numbers to strings. For integer types from stdint.h
header use the format macros from inttypes.h
.
#define __STDC_FORMAT_MACROS // non needed in C, only in C++
#include <inttypes.h>
#include <stdio.h>
void func(const char *uid)
{
printf("uid is %s\n",uid);
}
int main()
{
uint64_t trackuid = 2906622092;
char buf[256];
snprintf(buf, sizeof buf, "%"PRIu64, trackuid);
func(buf);
return 0;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With