C Program Without a Main Function


 

How to write a C program without a main function?. Is it possible to do that. Yes there can be a C program without a main function. Here’s the code of the program without a main function…

#include<stdio.h>
#define HRS(f,a,c,e,b,o,Q,k) f##b##Q##k
#define shadhin HRS(m,r,s,h,a,d,i,n)

//HRS = Habibur Rahman Shadhin

int shadhin()
{
        printf(“”Shadhin” Awesome!!!!!!!!!!!!!!”);
}

Does the above program run without the main function? Yes, the above program runs perfectly fine even without a main function. But how, whats the logic behind it? How can we have a C program working without main?

Here we are using preprocessor directive #define with arguments to give an impression that the program runs without main. But in reality it runs with a hidden main function.

The ‘##‘ operator is called the token pasting or token merging operator. That is we can merge two or more characters with it.

ψ NOTE: A Preprocessor is program which processes the source code before compilation.

Look at the 2nd line of program –

#define HRS(f,a,c,e,b,o,Q,k) f##b##Q##k

What is the preprocessor doing here. The macro HRS(f,a,c,e,b,o,Q,k) is being expanded as “fbQk” (The ## operator merges f,b,Q&k into fbQk). The logic is when you pass (f,a,c,e,b,o,Q,k)as argument it merges the 1st,5th,7th& the 8th characters(tokens).

Now look at the third line of the program –

#define shadhin HRS(m,r,s,h,a,d,i,n)

Here the preprocessor replaces the macro “begin” with the expansion HRS(m,r,s,h,a,d,i,n). According to the macro definition in the previous line the argument must be expanded so that the 1st,5th,7th& the 8th characters must be merged. In the argument (m,r,s,h,a,d,i,n)  1st,5th,7th& the 8th characters are ‘m’,’a’,’i’ & ‘n’.

So the third line “int shadhin” is replaced by “int main” by the preprocessor before the program is passed on for the compiler. That’s it…

The bottom line is there can never exist a C program without a main function. Here we are just playing a gimmick that makes us beleive the program runs without main function, but actually there exists a hidden main function in the program. Here we are using the proprocessor directive to intelligently replace the word begin” by “main”. In simple words int shadin=int main.

Auto_UrlOpener


Language: C++

#include<iostream>
#include<fstream>
#include <stdlib.h>
#include<string.h>
#include<windows.h>
void welcome(void);
void thanks(void);
using namespace std;
int main()
{
char file;
char s;
welcome();
printf(“Are you sure to run this? Y/Nn”);
scanf(“%c”,&file);

ifstream shadhin(“links.txt”);
char link[5000];
if(file==’y’ || file==’Y’)
{
if(shadhin==”)
{
cout<<“nn”links.txt” file missing.!!! First close the progarm then Put the file and run again.n”;
cout<<“Press CTRL+Z then Enter to exit.”<<endl;
cin>>s;
return 0;
}
cout<<“nProgram is now runnig…………………..”<<endl;
while(shadhin>>link)
{
ShellExecute(NULL, “open”, link,
NULL, NULL, SW_SHOWNORMAL);
Sleep(5000);
}
cout<<“nWork is done.”;
}else if(file==’n’ || file==’N’){
cout<<“nThank you! Best of luck for next time.n”<<endl;
}else{
cout<<“Oops!!!!!! You enter invalid key.Run again and give right key.”<<endl;
}
shadhin.close();
thanks();
cout<<“Press CTRL+Z then Enter to exit.”<<endl;
cin>>s;

return 0;

}
void welcome(void)
{
cout<<“Welcome!This is an auto urls opener program that Developed by H.R.Shadhin”<<endl;
cout<<“=====================>Shadhin<==================nn”<<endl;
}
void thanks(void)
{
cout<<“nn************************************************”<<endl;
cout<<“Thank you for using this program.”<<endl;
cout<<“Give feedbacks on: hrshadhin.wordpress.com”<<endl;
cout<<“E-mail:dev[AT]hrshadhin[DOT]me “<<endl;
cout<<“nn************************************************”<<endl;
}

The Easiest Ways to Cheat in Your Exams


The Easiest Ways to Cheat in Your Exams (20 images)

Need to pass in your exams ? There are at least two easy ways how you can cheat and not be caught.

Check out some of the most creative and unique ways to copy in your exams .

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

The Easiest Ways to Cheat in Your Exams (20 images)

 Others ways…………………..

Black Light Method

  1. Get one of those black light pens that only show up under a black light and come with one attached.
  2. The day before the test, write some things that will probably be on the test on your desk.
  3. The next day, wear a hoodie and hide the pen in your sleeve.
  4. When no-one is looking, shine it on the area where you wrote before.

Locker Combination Method

  1. Group your answers and code them to look like a locker combination. For example, if my first set of answers were 135, 23, and 56, I would write something like Lock #1- 135,23, 56, so if someone looks through my bag or if someone looks at me while I am looking at my answers, they will only think that’s a lock combination of mine at school, or wherever; when its really answers to my first 3 problems on my exam that my teachers going to give back to me tomorrow!
    • If anyone asks about the big numbers, just say you accidentally misplaced a comma. Be sure to have your answers memorized before the test.

The Girls Only Method

  1. Ask to get out of an exam to go to the toilet. If they say no then say subtly to a woman invigilator you need to change your pad (make sure you’re not on your period that day, that’s a bit gross).
  2. Earlier on, you will have written down notes on a sanitary pad, and put this one on. If you need more notes then write them on a new pad and wrap it back up. When in the bathroom (if it’s a real exam the invigilator will probably escort you) look at the pad you have on and quickly memorize it. Then change it, put it in the bin, and replace it with the pad that has more notes. Memorize them quickly and then come out of the toilet as if nothing is wrong.
  3. Go back to the exam and scribble down the answers.
  4. Hide the answers in your bra. During the test, fiddle with your shirt and look down to see the answers or notes. No teacher will dare call you out!

Toilet Paper Method

  1. Write your notes on toilet paper, sneak it into your pocket, ask to go to the washroom. Take out your toilet paper and stick it to your shoe, but keep the written side facing down. When someone tells you about the paper, check your notes when no-one is looking then throw it out.

Position Yourself Method

  1. Sit next to someone smart in your class.
  2. Start out by sitting in your seat like a normal person.
  3. Later, pretend to be uncomfortable and position yourself so your sitting on your knees.
  4. While you are moving look over the smart student’s head and look at his/her answers.
    • Do not be too obvious, or he/she will find out you are cheating.

 Desk Writing Method

  1. You’ll need to get the spelling words, or the math answers that you need. (This works best on a spelling test)
  2. Write them down inside your desk or on the side (I have a cubby desk not a fold up desk)
  3. When it comes to test time, look inside your desk and look at your answers, but be sure to get something out like an eraser!