小编T. *_*ker的帖子

标准库include应该写在哪里?.c 或 .h 文件?

我有以下简单的代码:

mainc.c:

    #include <stdlib.h>
    #include "hello.h"


    int main (int argc, char *argv[])
    {
      hello ();
      return EXIT_SUCCESS;
    }
Run Code Online (Sandbox Code Playgroud)

你好ç:

    #include "hello.h"

    void hello (void)
    {
      printf ("Hello world!");
    }
Run Code Online (Sandbox Code Playgroud)

你好.h:

    #ifndef _HELLO_H_
    #define _HELLO_H_
    #endif
Run Code Online (Sandbox Code Playgroud)

我需要在 hello 中包含 stdio.h 才能访问 printf() 函数。

我应该把它包含在哪里?在 hello.c 或 hello.h 中?两种解决方案似乎都是正确的,是否有最佳实践?

c header-files

4
推荐指数
1
解决办法
1349
查看次数

Rust 引用和解除引用

这是 Rust 代码的一小段,我试图用它来理解 Rust 引用和取消引用:

fn main() {
    let mut i: i32 = 1;
    println!("i in main: {}", i);
    increment(&mut i);
    println!("i in main: {}", i);

    let mut a = String::from("ABCD");
    println!("a in main: {}", a);
    addchr(&mut a);
    println!("a in main: {}", a);
}

pub fn increment(i: &mut i32) {
    *i += 1;
    println!("i in increment: {}", *i);
}

pub fn addchr(s: &mut String) {
    s.push('a');
    println!("a in addchr: {}", s);
}
Run Code Online (Sandbox Code Playgroud)

在整数的情况下,接收引用的函数需要取消引用它(*i),但在字符串的情况下则不需要(取消引用似乎是“自动”)。

是什么造成了这种差异?是否只是关于内存分配的位置(堆栈或堆)?

rust

1
推荐指数
1
解决办法
94
查看次数

标签 统计

c ×1

header-files ×1

rust ×1