解释以下c语言程序的函数功能以及每个参数
void palindromeFormation(int num)
{
int reverseNum, addNum;
char strNum[11], strReverseNum[11], strAddNum[11];
int isPalindromic = 0;
while (!isPalindromic) {
sprintf(strNum, "%d", num);
strcpy(strReverseNum, strNum);
int len = strlen(strNum);
for (int i = 0; i < len/2; i++) {
char c = strReverseNum[i];
strReverseNum[i] = strReverseNum[len-i-1];
strReverseNum[len-i-1] = c;
}
sscanf(strReverseNum, "%d", &reverseNum);
addNum = num + reverseNum;
printf("%d + %d = %d\n", num, reverseNum, addNum);
sprintf(strAddNum, "%d", addNum);
isPalindromic = 1;
len = strlen(strAddNum);
for (int i = 0; i < len/2; i++) {
if (strAddNum[i] != strAddNum[len-i-1]) {
isPalindromic = 0;
break;
}
}
num = addNum;
}
printf("回文数为:%d\n", addNum);
}