#include #include #include #include "t_spi.h" #include "t_iic.h" #include "t_task.h" #include "t_arg.h" #include "tool.h" #include /** * @brief 测试函数执行时间 * @param name: [输入] 测试名称 * @param pFunction: [输入] 指向待测试函数的指针 * @return void * @example Test("FunctionName", functionName); **/ void Test(char *name, void (*pFunction)()) { clock_t start, end; double cpu_time_used; printf("\n------< %s TEST >------\n", name); start = clock(); pFunction(); end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("\nTime taken by %s: %f seconds\n", name, cpu_time_used); printf("\n------< %s END >------\n", name); } #define END "\n" #define TYPE_F(v) _Generic((v), \ char :"[char]-> "#v"=%c" END, \ short :"[short]-> "#v"=%d" END, \ int :"[int]-> "#v"=%d" END, \ float :"[float]-> "#v"=%.2f" END , \ double :"[double]-> "#v"=%.2f" END, \ default: "[err]-> "#v"=%p" END) #define POUT(s) printf(TYPE_F(s) ,s) int main() { srand((unsigned) time(NULL)); int i = 1; POUT((++i) + (++i)); char str[] = "123.456"; float result = Str2Float(str); printf("Result: %.3f\n", result); // Test("SPI", Test_spi); // Test("IIC", Test_iic); // Test("ArgPase", Test_argpase); // Test("Task", Test_task); return 0; }