Большинство строковых функций в стандартной библиотеке C работают со знаковыми указателями, такими как char *mystring;
. Однако другие библиотеки (такие как openssl и sqlite) имеют функции, определенные с помощью указателей на символы без знака (unsigned char *mystring
).
Если у вас есть строка, которую необходимо использовать с обоими типами функций, лучше объявитьстроку как unsigned char *
, затем приведите ее к char *
при работе с такими функциями, как strlen, или вы должны объявить их как char *
, а затем привести их как unsigned при работе с функциями openssl или sqlite?
Код, кажется, работает одинаково в любом случае, поскольку ни в одном из случаев вы не выполняете математические операции над отдельными символами в строке. Просто интересно, какой путь будет «чище»?
Кроме того, он работает без приведения, но делает -Wall
несчастным.