Question: Okay, you may call me a noob but I'm realling confused.

My ex classmate paid me to write a program in C. She gave me the task and it said something like "blah blah blah make at least TWO CLASSES, write at least ONE CONSTRUCTOR and rewrite at least ONE METHOD" it says that word by word.

And then I told her "this is C++ not C" she said "but we're learning C"

I ignored it and wrote the program in c++ and sent to her as I thought she didn't know what she was talking about. She said "it doesn't work on code blocks, and wtf is cout <<" and then she sent me a chunk of code that they write and instead of cout and cin there was printf and scanf. It had to be C. So, I rewrote the program with printf and scanf and she still says codeblocks throw errors (I still left classes as task demanded).

I want to ask wtf? Does C have classes? Or is there a misunderstanding or something?

EDIT: I've come back to the question after so many years and noticed some a\*\*\*\*\*es took time to remove 99% text from the question. Get a life, this is not 1984 yet.

Answer: 
No, C doesn't have classes. That said, there are ways of simulating object-oriented programming in C - a quick Google search should yield some useful results.
C doesn't support classes, but we do have **tricky hacky workaround**. Read entire explanation or simply scroll down to code section.

struct declaration:
-------------------

I declared an `struct` with name **class**. Inside, I put uninitialized `function` with type **void**, name **Print** and one parameter **char**.
This will look like `void class.Print(char);`

struct don't allow initialization inside:
-----------------------------------------

But struct doesn't allow initialization of variables inside. So we will init it outside. We created an a `function` with type of **class**, name **Printer**. It inits that `struct` and return initialized struct which we can easily make use of.

call the class:
---------------

Now we included helper header and declared variable with type `class`, name `printer1`, value `Printer()`. After I called member of class and print string using `printer1.Print("Hello from class function");`

`main.c`

```cpp
#include "helper.h"
void main()
{
    class printer1 = Printer();
    printer1.Print("Hello from class function");
}

```

`helper.h`

```cpp
#include <stdio.h> //imports int printf(...);
void print(const char* text)
{
    printf(text);
}

typedef struct 
{
    void (*Print) (const char*);
} class;

class Printer()
{
    class Printer;
    Printer.Print = &print;
    return Printer;
}

```

**Note:**

* This exact example was compiled and tested successfully with VC and tcc compiler.
* `class` is example name. You can use any other name as well.