Skip to content

chunqian/icecream-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IceCream-C

Never use printf to debug again

Single header, implemented in C99 of IceCraem.

Based on rxi's log.c

use

import:

#include "icecream.h"

The exmple when there are no parameters

ic();

output

🍦 test/test.c:24 in main()

The example of printing string

char str_a[] = "hello";
char str_b[] = "world";

ic_str(str_a, str_b, "!");

output

🍦 str_a = "hello", str_b = "world", "!" = "!"

The example of printing int

int int_a = 32767;
int int_b = -32768;

ic_int(int_a, int_b, 999);

output

🍦 int_a = 32767, int_b = -32768, 999 = 999

The example of printing long

long long_a = 2141483647;
long long_b = -2147483648;

ic_long(long_a, long_b, 999999);

output

🍦 long_a = 2141483647, long_b = -2147483648, 999999 = 999999

The example of printing hex

int int_a = 32767;
int int_b = -32768;

ic_hex(int_a, int_b, 999);

output

🍦 int_a = 0x7fff, int_b = 0xffff8000, 999 = 0x3e7

The example of printing float

float float_a = 1.0;
float float_b = 2.0;

ic_float(float_a, float_b, 999.0);

output

🍦 float_a = 1.00, float_b = 2.00, 999.0 = 999.00

The example of printing double

double double_a = 1.0;
double double_b = 2.0;

ic_double(double_a, double_b, 999.0);

output

🍦 double_a = 1.0000, double_b = 2.0000, 999.0 = 999.0000

The example of printing pointer

char str_a[] = "hello";
char str_b[] = "world";
char *ptr_a = &str_a[0];
char *ptr_b = &str_b[0];

ic_ptr(ptr_a, ptr_b, "!");

output

🍦 ptr_a = 0x7ffee2bcf378, ptr_b = 0x7ffee2bcf380, "!" = 0x10d031e3e

License

This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.

About

Never use printf to debug again in c99

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published