Email me

Rust errors / Everything else

Rust compiler error · checked with rustc 1.99.0

Rust error E0060: this function takes at least 1 argument but 0 arguments were supplied

What it meansExternal C functions are allowed to be variadic. However, a variadic function takes a minimum number of arguments. For example, consider C's variadic printf function:

What rustc prints

error[E0060]: this function takes at least 1 argument but 0 arguments were supplied
 --> main.rs:9:10
  |
9 | unsafe { printf(); } // error!
  |          ^^^^^^-- argument #1 of type `*const i8` is missing
  |
note: function defined here
 --> main.rs:6:8
  |
6 |     fn printf(_: *const c_char, ...) -> c_int;
  |        ^^^^^^ -
help: provide the argument
  |
9 | unsafe { printf(/* *const i8 */); } // error!
  |                 +++++++++++++++

Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.

E0060Everything else
Activein rustc 1.99.0
7related errors linked below

The compiler team's explanation

External C functions are allowed to be variadic. However, a variadic function takes a minimum number of arguments. For example, consider C's variadic printf function:

use std::os::raw::{c_char, c_int};

extern "C" {
    fn printf(_: *const c_char, ...) -> c_int;
}

unsafe { printf(); } // error!

Using this declaration, it must be called with at least one argument, so simply calling printf() is invalid. But the following uses are allowed:

unsafe {
    printf(c"test\n".as_ptr());

    printf(c"number = %d\n".as_ptr(), 3);

    printf(c"%d, %d\n".as_ptr(), 10, 5);
}

From rustc --explain E0060 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.

Related errors

All 518 Rust error codes · Rust crate data · Glossary

Up next

Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ