c - 警告在没有强制转换的情况下从指针生成整数

标签 c

应为“int”但参数类型为“char *” 不知道如何改正,有什么建议

#include <stdio.h>

int my_strncmp(char const *s1, char const *s2, int n);

int main (int ac, char **ag) {
    char result;

    if (ac == 4) {
        result = my_strncmp(ag[1], ag[2], ag[3]);
        printf("%d\n", result);
    }   
    return(0);
}

最佳答案

您需要将 ag[3](char */string 类型)转换为整数。

看看strtol()和它的兄弟们。用atoi()存在一个更简单的功能,但是它不那么健壮和通用。这就是为什么我会建议养成使用 strtol() 等的习惯的原因。

旁注,“n”参数通常是size_t(无符号)而不是int。 (比较 strncmp() )。然后,您将使用 strtoul()

关于c - 警告在没有强制转换的情况下从指针生成整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082561/

相关文章:

c - 这段 C 代码对返回码有什么作用?

c - 在 STDOUT 和 STDIN 的文件描述符上执行库函数的奇怪行为

在 C 中创建一个字符串数组失败,为什么?

c - 循环文本文件时出现不需要的字符

c - 如何使用 MPI 中的标志打破所有进程中的循环?

c - 如何在c中使用无参数的void函数返回一个值

c - 如何在C中定义 "constant"结构

c - linux sendto() 正在刷新缓冲区?

c - 故意分配大于 INT_MAX 的 `i` 值时出现奇怪的行为

处理结构数组时内存损坏