Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #ifdef _inl_
- #undef _inl_
- #endif // !_inl_
- #ifdef TYPE_CAST_NO_INLINE
- #define _inl_
- #else
- #define _inl_ inline
- #endif // !TYPE_CAST_NO_INLINE
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <inttypes.h>
- #define type__format(T) _Generic((T),\
- char : "%c ",\
- short : "%" PRId16 " ",\
- int : "%" PRId32 " ",\
- long : "%" PRId32 " ",\
- long long : "%" PRId64 " ",\
- unsigned char : "%" PRIu8 " ",\
- unsigned short : "%" PRIu16 " ",\
- unsigned int : "%" PRIu32 " ",\
- unsigned long : "%" PRIu32 " ",\
- unsigned long long : "%" PRIu64 " ",\
- float : "%g ",\
- double : "%lg ",\
- long double : "%Lg ",\
- char* : "%s",\
- default : "%" PRIi32 " ")
- #define type_format(T) type__format((T)0)
- #define declare(NAME, T)\
- _inl_ void NAME##ts(void* data, char* buffer) {\
- sprintf(buffer, type_format( T ), *( T *)data);\
- };\
- _inl_ void NAME##ts_s(void* data, char* buffer, size_t buffer_size) {\
- if (data && buffer)\
- snprintf(buffer, buffer_size, type_format( T ), *( T *)data);\
- }
- typedef long double ldouble;
- declare(c, int8_t);
- declare(i16, int16_t);
- declare(i32, int32_t);
- declare(i64, int64_t);
- declare(u8, uint8_t);
- declare(u16, uint16_t);
- declare(u32, uint32_t);
- declare(u64, uint64_t);
- declare(f, float);
- declare(d, double);
- declare(ld, ldouble);
- _inl_ void sts(char* data, char* buffer) {
- sprintf(buffer, type_format(char*), data);
- };
- _inl_ void sts_s(char* data, char* buffer, size_t buffer_size) {
- if (data && buffer)\
- snprintf(buffer, buffer_size, type_format(char*), data);
- }
- /*_inl_ void cts(void* data, char* buffer) {
- sprintf(buffer, "%c ", *(char*)data);
- }
- _inl_ void cts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%c ", *(char*)data);
- }
- _inl_ void i8ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIi8 " ", *(int8_t*)data);
- }
- _inl_ void u8ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIu8 " ", *(uint8_t*)data);
- }
- _inl_ void i8ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIi8 " ", *(int8_t*)data);
- }
- _inl_ void u8ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIu8 " ", *(uint8_t*)data);
- }
- _inl_ void i16ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIi16 " ", *(int16_t*)data);
- }
- _inl_ void u16ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIu16 " ", *(uint16_t*)data);
- }
- _inl_ void i16ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIi16 " ", *(int16_t*)data);
- }
- _inl_ void u16ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIu16 " ", *(uint16_t*)data);
- }
- _inl_ void i32ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIi32 " ", *(int32_t*)data);
- }
- _inl_ void u32ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIu32 " ", *(uint32_t*)data);
- }
- _inl_ void i32ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIi32 " ", *(int32_t*)data);
- }
- _inl_ void u32ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIu32 " ", *(uint32_t*)data);
- }
- _inl_ void i64ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIi64 " ", *(int64_t*)data);
- }
- _inl_ void u64ts(void* data, char* buffer) {
- sprintf(buffer, "%" PRIu64 " ", *(uint64_t*)data);
- }
- _inl_ void i64ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIi64 " ", *(int64_t*)data);
- }
- _inl_ void u64ts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%" PRIu64 " ", *(uint64_t*)data);
- }
- _inl_ void fts(void* data, char* buffer) {
- sprintf(buffer, "%f ", *(float*)data);
- }
- _inl_ void fts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%f ", *(float*)data);
- }
- _inl_ void dts(void* data, char* buffer) {
- sprintf(buffer, "%lf ", *(double*)data);
- }
- _inl_ void dts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%lf ", *(double*)data);
- }
- _inl_ void ldts(void* data, char* buffer) {
- sprintf(buffer, "%lf ", *(long double*)data);
- }
- _inl_ void ldts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%lf ", *(long double*)data);
- }
- _inl_ void sts(void* data, char* buffer) {
- sprintf(buffer, "%s\n", (char*)data);
- }
- _inl_ void sts_s(void* data, char* buffer, size_t buffer_size) {
- if (data && buffer && buffer_size)
- snprintf(buffer, buffer_size, "%s\n", (char*)data);
- }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement