Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- int add( int a, int b ) {
- return a + b;
- }
- int sub( int a, int b ) {
- return a - b;
- }
- int mul( int a, int b ) {
- return a * b;
- }
- int or( int a, int b ) {
- return a | b;
- }
- int and( int a, int b ) {
- return a & b;
- }
- int xor( int a, int b ) {
- return a ^ b;
- }
- typedef int ( *op_ptr )( int, int );
- typedef struct {
- char name[11];
- op_ptr func;
- } op;
- int main()
- {
- int a, b;
- uint8_t sel;
- op ops[] = {
- { name: "Add", func: &add },
- { name: "Sub", func: &sub },
- { name: "Mul", func: &mul },
- { name: "OR" , func: &or },
- { name: "AND", func: &and },
- { name: "XOR", func: &xor }
- };
- for ( uint8_t i = 0; i < 6; i++ ) {
- printf( "%hhu. %s\n", i, ops[i].name );
- }
- printf( "\nSelection: " );
- scanf( "%hhu", &sel );
- getchar();
- printf( "a=" );
- scanf( "%d", &a );
- getchar();
- printf( "b=" );
- scanf( "%d", &b );
- getchar();
- if ( sel < 6 )
- printf( "result: %d\n", ops[sel].func( a, b ) );
- else
- printf( "No Action" );
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement