Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java程序员对C头文件有疑问_C - Fatal编程技术网

Java程序员对C头文件有疑问

Java程序员对C头文件有疑问,c,C,我对Java作为编程语言有相当多的实践,但我对C语言完全陌生。我知道头文件包含方法和变量的前向声明。这与Java中的抽象类有何不同?以下是答案: Java在一些核心C程序员中名声不好,主要是因为他们认为: 它“太容易了”(没有内存管理,SEGFULTS) “不能用于严肃的工作” “只是为了网络”或者 “慢” 与Python等语言相比,Java已经不是当今世界上最简单的语言了 它被用于许多桌面应用程序中——小程序甚至不经常使用。最后,Java总是比C慢,因为它不是直接编译成机器代码的。不过,有

我对Java作为编程语言有相当多的实践,但我对C语言完全陌生。我知道头文件包含方法和变量的前向声明。这与Java中的抽象类有何不同?

以下是答案:

  • Java在一些核心C程序员中名声不好,主要是因为他们认为:

    • 它“太容易了”(没有内存管理,SEGFULTS)
    • “不能用于严肃的工作”
    • “只是为了网络”或者
    • “慢”
    与Python等语言相比,Java已经不是当今世界上最简单的语言了

    它被用于许多桌面应用程序中——小程序甚至不经常使用。最后,Java总是比C慢,因为它不是直接编译成机器代码的。不过,有时并不需要极高的速度。无论如何,JVM并不是最慢的语言VM

  • 在C语言中工作时,没有抽象类

    头文件只包含粘贴到其他文件中的代码。将其放在头文件中的主要原因是它位于文件的顶部-这样,您就不需要关心将函数放在实际实现文件中的什么位置

    虽然可以在C中使用OO概念,但它没有内置的类支持和类似的OO基础。在纯C中实现继承几乎是不可能的,因此实际上永远不会有OO或抽象类。我建议坚持使用普通的
    struct
    s

    如果它使您更容易学习,那么一定要将它们视为抽象类(实现文件是继承类)——但在没有明确支持上述特性的情况下,在使用一种语言时,很难使用这种思维方式

    我不确定Java是否有它们,但我认为更接近于C#中的部分类

  • 以下是答案:

  • Java在一些核心C程序员中名声不好,主要是因为他们认为:

    • 它“太容易了”(没有内存管理,SEGFULTS)
    • “不能用于严肃的工作”
    • “只是为了网络”或者
    • “慢”
    与Python等语言相比,Java已经不是当今世界上最简单的语言了

    它被用于许多桌面应用程序中——小程序甚至不经常使用。最后,Java总是比C慢,因为它不是直接编译成机器代码的。不过,有时并不需要极高的速度。无论如何,JVM并不是最慢的语言VM

  • 在C语言中工作时,没有抽象类

    头文件只包含粘贴到其他文件中的代码。将其放在头文件中的主要原因是它位于文件的顶部-这样,您就不需要关心将函数放在实际实现文件中的什么位置

    虽然可以在C中使用OO概念,但它没有内置的类支持和类似的OO基础。在纯C中实现继承几乎是不可能的,因此实际上永远不会有OO或抽象类。我建议坚持使用普通的
    struct
    s

    如果它使您更容易学习,那么一定要将它们视为抽象类(实现文件是继承类)——但在没有明确支持上述特性的情况下,在使用一种语言时,很难使用这种思维方式

    我不确定Java是否有它们,但我认为更接近于C#中的部分类


  • 如果你向前声明了一些东西,你必须实际交付并实现它,否则编译器会抱怨。标头允许您显示“模块”的公共API,并使声明(用于类型检查等)可用于程序的其他部分。

    如果您转发声明内容,您必须实际交付并实现它,否则编译器会抱怨。标头允许您显示“模块”的公共API,并使声明(用于类型检查等)可用于程序的其他部分

  • 在我看来,这主要是因为许多C程序员似乎认为Java程序员不知道如何“真正”编程,例如处理指针、内存等

  • 我更愿意将头与Java接口进行比较,因为它们通常定义了必须如何使用API。 头文件基本上只是一种避免复制粘贴的方法:当遇到
    #include
    指令时,预处理器只是将头文件的内容包含在源文件中。 您将用户通常使用的每个声明都放在一个标题中

  • 在我看来,这主要是因为许多C程序员似乎认为Java程序员不知道如何“真正”编程,例如处理指针、内存等

  • 我更愿意将头与Java接口进行比较,因为它们通常定义了必须如何使用API。 头文件基本上只是一种避免复制粘贴的方法:当遇到
    #include
    指令时,预处理器只是将头文件的内容包含在源文件中。 您将用户通常使用的每个声明都放在一个标题中

  • 我认为对Java有很多嘲笑(嘲笑、嘲笑、蔑视、嘲笑)仅仅是因为它很流行

  • 抽象类和接口指定可以在特定类型的对象上调用的契约或一组函数。C中的函数原型实际上只对函数参数/返回值进行编译时类型检查

  • 我认为对Java有很多嘲笑(嘲笑、嘲笑、蔑视、嘲笑)仅仅是因为它很流行

  • 抽象类和接口指定契约或
    void Test(int i);
    
    void Test(int i)
    {
        ...
    }
    
    extern int i;
    
    int i;