diff --git a/slibs.h b/slibs.h index f5ad575..9586184 100644 --- a/slibs.h +++ b/slibs.h @@ -141,12 +141,15 @@ typedef sl_vec(char) sl_string; #define sl_str_free(str) sl_vec_free(str) -#define sl_c_str(str) \ - ({ \ - sl_vec_push((str), '\0'); \ - (str).size--; \ - (str).data; \ - }) +const char* sl_c_str(sl_string str); + +#ifdef SL_IMPLEMENTATION +const char* sl_c_str(sl_string str) { + sl_vec_push(str, '\0'); + str.size--; + return str.data; +} +#endif void sl_append_c_str(sl_string *sl_str, const char *c_str);