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