/*
 * Copyright ©2026 Soham Pardeshi. All rights reserved.
 * Permission is hereby granted to students registered for University of
 * Washington CSE 333 for use solely during Summer Quarter 2026 for
 * purposes of the course. No other use, copying, distribution, or
 * modification is permitted without prior written consent. Copyrights
 * for third-party components of this work must be honored. Instructors
 * interested in reusing these course materials should contact the author.
 */

#include <iostream>   // for std::cout, std::endl
#include <cstdlib>    // for EXIT_SUCCESS

#include "arith.h"    // the SAME header, included from C++

using namespace std;

int main(int argc, char** argv) {
  cout << Add(2, 3) << endl;
  return EXIT_SUCCESS;
}

// Each file is compiled by its own compiler, then linked together.
// Thanks to the extern "C" guard in arith.h, both agree on the symbol
// name 'Add', so the linker matches them:
//   g++ -c use.cc      # sees extern "C", wants plain 'Add'
//   gcc -c arith.c     # defines plain 'Add'
//   g++ -o use use.o arith.o